Instruções passo a passo: criando e implementando interfaces (Visual Basic)

As interfaces descrevem as características de propriedades, métodos e eventos, mas deixam os detalhes da implementação com estruturas ou classes.

Este passo a passo demonstra como declarar e implementar uma interface.

Observação

Este passo a passo não fornece informações sobre como criar uma interface do usuário.

Observação

Seu computador pode mostrar diferentes nomes ou locais para alguns dos elementos de 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 Personalizando o IDE.

Para definir uma interface

  1. Abra um novo projeto de aplicativo do Windows Visual Basic.

  2. Adicione um novo módulo ao projeto clicando em Adicionar Módulo no menu Projeto.

  3. Dê um nome ao novo módulo Module1.vb e clique em Adicionar. O código do novo módulo é exibido.

  4. Defina uma interface nomeada TestInterface dentro de Module1 digitando Interface TestInterface entre as instruções Module e End Module e, em seguida, pressione ENTER. O Editor de Código recuou a palavra-chave Interface e adiciona uma instrução End Interface para formar um bloco de código.

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

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

Implementação

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

Para implementar a interface

  1. Adicione uma classe nomeada ImplementationClass adicionando a seguinte instrução a Module1, após a instrução End Interface, mas antes da instrução End Module e, em seguida, pressionando ENTER:

    Class ImplementationClass
    

    Se você estiver trabalhando no ambiente de desenvolvimento integrado, o Editor de Código fornecerá uma instrução End Class correspondente quando você pressionar ENTER.

  2. Adicione a seguinte instrução Implements a ImplementationClass, que nomeia a interface que a classe implementa:

    Implements TestInterface
    

    Quando listada separadamente de outros itens na parte superior de uma classe ou estrutura, a instrução Implements indica que a classe ou estrutura implementa uma interface.

    Se você estiver trabalhando no ambiente de desenvolvimento integrado, o Editor de Código implementará os membros de classe exigidos por TestInterface quando você pressionar ENTER e poderá ignorar a próxima etapa.

  3. Se você não estiver trabalhando no ambiente de desenvolvimento integrado, deverá implementar todos os membros da interface MyInterface. Adicione 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
    

    A instrução Implements nomeia a interface e o membro da interface que está sendo implementado.

  4. Conclua a definição de Prop1 adicionando um campo privado à classe que armazenava o valor da propriedade:

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

    Retorne o valor de pval do acessador get da propriedade.

    Return pval
    

    Defina o valor de pval do acessador do conjunto de propriedades.

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

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

Para testar a implementação da interface

  1. Clique com o botão direito do mouse no formulário de inicialização do projeto no Gerenciador de Soluções e clique em Exibir Código. O editor exibe a classe do formulário de inicialização. Por padrão, o formulário de inicialização é chamado de Form1.

  2. Adicione o seguinte campo testInstance à classe Form1:

    Dim WithEvents testInstance As TestInterface
    

    Ao declarar testInstance como WithEvents, a classe Form1 pode lidar com os eventos dele.

  3. Adicione o seguinte manipulador de eventos à classe Form1 para lidar com eventos gerados por testInstance:

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

    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 procedimento Test cria uma instância da classe que implementa MyInterface, atribui essa instância ao campo testInstance, define uma propriedade e executa um método por meio da interface.

  5. Adicione código para chamar o procedimento Test do procedimento Form1 Load do formulário de 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. Execute o procedimento Test pressionando F5. A mensagem "Prop1 foi definida como 9" é exibida. Depois de clicar em OK, a mensagem "O parâmetro X para Method1 é 5" será exibida. Clique em OK e a mensagem "O manipulador de eventos capturou o evento" é exibida.

Confira também