Instrução Implements
Especifica uma ou mais interfaces, ou membros de inteface, que devem ser implementados na definição de classe ou estrutura na qual ela aparece.
Sintaxe
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
Partes
interfacename
Obrigatórios. Uma interface cujos procedimentos, propriedades e eventos devem ser implementados por membros correspondentes na classe ou na estrutura.
interfacemember
Obrigatórios. O membro de uma interface que está sendo implementada.
Comentários
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 membros; classes e estruturas implementam esses membros. Para obter mais informações, consulte Interfaces.
A instrução Implements
deve vir imediatamente após Class
ou Structure
.
Ao implementar uma interface, você deve implementar todos os membros nela declarados. Omitir qualquer membro é considerado um erro de sintaxe. Para implementar um membro individual, especifique a palavra-chave Implements (que é separada da instrução Implements
) ao declarar o membro na classe ou na 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 apenas pela conversão de uma instância da classe de implementação em uma variável declarada como do tipo da interface.
Exemplo 1
O exemplo a seguir mostra como usar a instrução Implements
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 instrução Implements
em uma linha de código-fonte separada para indicar que a classe implementa todos os membros da interface ICustomerInfo
. Em seguida, cada membro da classe usa a palavra-chave Implements
como parte de sua declaração de membro para indicar que ele implementa esse membro de 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 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