Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
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