Passo a passo: Criando e implementando interfaces (Visual Basic)

Interfaces descrevem as características das propriedades, métodos e eventos, mas deixe os detalhes de implementação para classes ou estruturas.

Esta explicação passo a passo demonstra como declarar e implementar uma interface.

ObservaçãoObservação

Seu computador pode mostrar nomes ou locais diferentes para alguns dos elementos da interface do usuário do Visual Studio nas instruções a seguir. A edição do Visual Studio que você possui e as configurações que você usa determinam esses elementos. Para obter mais informações, consulte Configurações do Visual Studio.

Para definir uma interface

  1. Open a new Visual Basic Windows Application project.

  2. Adicionar um novo módulo ao projeto clicando em Adicionar módulo sobre o projeto menu.

  3. ONome do novo módulodeModule1.vb e clique em Adicionar. O código para o novo módulo é exibido.

  4. Definir uma interface denominada TestInterface em Module1 digitando Interface TestInterface entre o Module e End Module declarações e em seguida, pressionando ENTER. O o Editor deCódigo recuos a Interfacepalavra-chave e adiciona um End Interfacededemonstrativo ao formulário um bloco de código.

  5. Definir uma propriedade, métodoe evento para a interface , colocando o seguinte código entre o Interface e End Interface instruções:

    Property Prop1() As Integer
    Sub Method1(ByVal X As Integer)
    Event Event1()
    

Implementation

Você pode perceber que a sintaxe usada para declarar membros de interface é diferente da sintaxe usada para declarar membros de classe . Essa diferença reflete o fato de que interfaces não podem conter código de implementação.

Para implementar a interface

  1. Adicionar uma classe chamada ImplementationClass adicionando a seguinte demonstrativo para Module1, após a End Interface demonstrativo , mas antes o End Module demonstrativoe, em seguida, pressionando ENTER:

    Class ImplementationClass
    

    Se você estiver trabalhando dentro do ambientedo desenvolvimento integrado, o o Editor deCódigo fornece uma correspondência End Classdedemonstrativo quando você pressiona ENTER.

  2. Adicionar o seguinte Implementsdedemonstrativo para ImplementationClass, que nomeia a interface de classe implementa:

    Implements TestInterface
    

    Quando listados separadamente de outros itens na parte superior de uma classe ou estrutura, o Implements demonstrativo indica que a classe ou estrutura implementa uma interface.

    Se você estiver trabalhando dentro do ambientedo desenvolvimento integrado, o o Editor deCódigo implementa os membros da classe exigidos pelo TestInterface Quando você pressionar ENTER, e você pode ignorar a próxima etapa.

  3. Se você não estiver trabalhando dentro do ambientede desenvolvimento integrado, você deve implementar todos os membros da interface MyInterface. Adicionar o seguinte código para ImplementationClass para implementar Event1, Method1, e Prop1:

    Event Event1() Implements TestInterface.Event1
    
    Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1
    End Sub
    
    Public Property Prop1() As Integer Implements TestInterface.Prop1
        Get
        End Get
        Set(ByVal value As Integer)
        End Set
    End Property
    

    O Implementsdedemonstrativo nomeia a interface e um membro de interface que estão sendo implementadas.

  4. Concluir a definição de Prop1 , adicionando um campo de particular à classe armazenado o valor da propriedade :

    ' Holds the value of the property.
    Private pval As Integer
    

    Retornar o valor de pval da propriedade obter acessador.

    Return pval
    

    Definir o valor de pval na propriedade definir acessador.

    pval = value
    
  5. Concluir a definição de Method1 , adicionando o código a seguir.

    MsgBox("The X parameter for Method1 is " & X)
    RaiseEvent Event1()
    

Para teste a implementação da interface

  1. -De direito clique em formulário de inicialização em seu projeto no Solution Explorere clique em Exibir Código. O editor exibe a classe do formuláriode inicialização. Por padrão, o formulário de inicialização é chamado Form1.

  2. Adicionar o seguinte testInstanceocampo para o Form1classe:

    Dim WithEvents testInstance As TestInterface
    

    Declarando testInstance como WithEvents, o Form1 classe pode manipular eventos.

  3. Adicionar o manipulador de evento a seguir para o Form1aclasse para manipular eventos gerados por testInstance:

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Adicionar uma sub-rotina nomeada Test para o Form1aclasse para teste a implementação de classe:

    Sub Test()
        '  Create an instance of the class.
        Dim T As New ImplementationClass
        ' Assign the class instance to the interface.
        ' Calls to the interface members are 
        ' executed through the class instance.
        testInstance = T
        ' Set a property.
        testInstance.Prop1 = 9
        ' Read the property.
        MsgBox("Prop1 was set to " & testInstance.Prop1)
        '  Test the method and raise an event.
        testInstance.Method1(5)
    End Sub
    

    O Test procedimento cria uma instância da classe que implementa MyInterface, atribui essa instância para o testInstance campo, define uma propriedadee executa um método por meio da interface.

  5. Adicionar o código para chamar o Testprocedimento a partir de Form1 Loadoprocedimento do seu formuláriode inicialização:

    Private Sub Form1_Load(ByVal sender As System.Object, 
                           ByVal e As System.EventArgs) Handles MyBase.Load
        Test() ' Test the class.
    End Sub
    
  6. Executar o Test procedimento pressionando F5. A mensagem "Prop1 foi definido como 9" é exibida. Depois de clicar em OK, a mensagem "O parâmetro de x para Method1 é de 5" é exibida. Clique em OKe a mensagem "O manipulador de evento pego o evento é exibida.

Consulte também

Referência

Implementa Declaração

Declaração Interface (Visual Basic)

Declaração de evento

Outros recursos

Interfaces (Visual Basic)