Compartilhar via


Instrução Implements

Especifica uma ou mais interfaces, ou membros de inteface, que devem ser implementadas na definição da classe ou estrutura onde aparece.

Implements interfacename [, ...]
-or-
Implements interfacename.interfacemember [, ...]

Partes

  • interfacename
    Obrigatório. Uma interface cujas propriedades, procedimentos, e eventos estão para ser implementados por membros correspondentes de classes ou estruturas.

  • interfacemember
    Obrigatório. O membro da interface que está sendo implementado.

Comentários

Uma interface é uma coleção de protótipos representando os membros (propriedades, procedimentos e eventos) que a interface encapsula. Interfaces contém unicamente as declaração para membros; classes e estruturas implementam esses membros. Para obter mais informações, consulte Interfaces (Visual Basic).

A declaração Implements deve seguir a declaração Class or Structure imediatamente.

Quando você implementa uma interface, você deve implementar todos os membros declarados na mesma. Omitir qualquer membro é considerado um erro de sintaxe. Para implementar um membro individual, você deve especificar a palavra chave Cláusula Implements (Visual Basic) ( que é separada da declaração Implements) quando você declara o membro na classe ou estrutura. Para obter mais informações, consulte Interfaces (Visual Basic).

Classes podem usar implementações de propriedades e procedimentos Particular (Visual Basic), mas esses membros são acessíveis somente chamando uma instância da classe implementada dentro de uma variável declarada com o tipo da interface.

Exemplo

O seguinte exemplo mostra como cusar a declaração Implements para implementar membros de uma interface. Ele define uma interface nomeada como ICustomerInfo com um evento, uma propriedade e um procedimento. A classe customerInfo implementa todos os membros definidos na interface.

Public Interface ICustomerInfo
    Event updateComplete()
    Property customerName() As String 
    Sub updateCustomerStatus()
End Interface 

Public Class customerInfo
    Implements ICustomerInfo
    ' Storage for the property value. 
    Private customerNameValue As String 
    Public Event updateComplete() Implements ICustomerInfo.updateComplete
    Public Property CustomerName() As String _
        Implements ICustomerInfo.customerName
        Get 
            Return customerNameValue
        End Get 
        Set(ByVal value As String)
            ' The value parameter is passed to the Set procedure 
            ' when the contents of this property are modified.
            customerNameValue = value
        End Set 
    End Property 

    Public Sub updateCustomerStatus() _
        Implements ICustomerInfo.updateCustomerStatus
        ' Add code here to update the status of this account. 
        ' Raise an event to indicate that this procedure is done. 
        RaiseEvent updateComplete()
    End Sub 
End Class

Note que a classe customerInfo usa a declaração Implements num código fonte separado para indicar que a classe implementa todos os membros da interface ICustomerInfo. Depois cada membro na classe usa a palavra chave Implements como parte de sua declaração de membros para indicar que cada um implementa o membro da interface.

Os próximos dois procedimentos mostram como você poderia usar a interface implementada no exemplo anterior. Para testar essa implementação, adicione esses procedimentos no seu projeto e chame o procedimento testImplements.

Public Sub testImplements()
    ' This procedure tests the interface implementation by 
    ' creating an instance of the class that implements ICustomerInfo. 
    Dim cust As ICustomerInfo = New customerInfo()
    ' Associate an event handler with the event that is raised by 
    ' the cust object. 
    AddHandler cust.updateComplete, AddressOf handleUpdateComplete
    ' Set the customerName Property
    cust.customerName = "Fred" 
    ' Retrieve and display the customerName property.
    MsgBox("Customer name is: " & cust.customerName)
    ' Call the updateCustomerStatus procedure, which raises the 
    ' updateComplete event.
    cust.updateCustomerStatus()
End Sub 

Sub handleUpdateComplete()
    ' This is the event handler for the updateComplete event.
    MsgBox("Update is complete.")
End Sub

Consulte também

Referência

Cláusula Implements (Visual Basic)

Instrução Interface (Visual Basic)

Outros recursos

Interfaces (Visual Basic)