Partilhar via


Declaração de implementos

Especifica uma ou mais interfaces, ou membros da interface, que devem ser implementados na definição de classe ou estrutura na qual aparece.

Sintaxe

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

Partes

interfacename
Obrigatório. Uma interface cujas propriedades, procedimentos e eventos devem ser implementados pelos membros correspondentes na classe ou estrutura.

interfacemember
Obrigatório. O membro de uma interface que está sendo implementada.

Observações

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

A Implements declaração deve seguir-se imediatamente à Class declaração ou Structure declaração.

Ao implementar uma interface, você deve implementar todos os membros declarados na interface. Omitir qualquer membro é considerado um erro de sintaxe. Para implementar um membro individual, especifique a palavra-chave Implements (que é separada da Implements instrução) quando declarar o membro na classe ou estrutura. Para obter mais informações, consulte Interfaces.

As classes podem usar implementações privadas de propriedades e procedimentos, mas esses membros são acessíveis somente convertendo uma instância da classe de implementação em uma variável declarada como sendo do tipo da interface.

Exemplo 1

O exemplo a seguir mostra como usar a Implements instrução para implementar membros de uma interface. Ele define uma interface nomeada 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

Observe que a classe customerInfo usa a Implements instrução em uma linha de código-fonte separada para indicar que a classe implementa todos os membros da ICustomerInfo interface. Em seguida, cada membro da classe usa a Implements palavra-chave como parte de sua declaração de membro para indicar que implementa esse membro da interface.

Exemplo 2

Os dois procedimentos a seguir mostram como você pode usar a interface implementada no exemplo anterior. Para testar a implementação, adicione esses procedimentos ao seu projeto e chame o testImplements procedimento.

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