Implements-Anweisung
Gibt eine oder mehrere Schnittstellen oder Schnittstellenmember an, die in der Klassen- oder Strukturdefinition implementiert werden müssen, in der sie angezeigt wird.
Syntax
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
Bestandteile
interfacename
Erforderlich. Eine Schnittstelle, deren Eigenschaften, Prozeduren und Ereignisse von entsprechenden Membern in der Klasse oder Struktur implementiert werden sollen.
interfacemember
Erforderlich. Der Member einer Schnittstelle, die implementiert wird.
Bemerkungen
Eine Schnittstelle ist eine Sammlung von Prototypen, die die Elemente (Eigenschaften, Prozeduren und Ereignisse) darstellen, die die Schnittstelle kapselt. Schnittstellen enthalten nur die Deklarationen für Member; Klassen und Strukturen implementieren diese Member. Weitere Informationen finden Sie unter Schnittstellen.
Die Implements
-Anweisung muss unmittelbar auf die Class
-Anweisung oder Structure
folgen.
Wenn Sie eine Schnittstelle implementieren, müssen Sie alle in der Schnittstelle deklarierten Member implementieren. Das Auslassen von Membern wird als Syntaxfehler betrachtet. Um ein einzelnes Element zu implementieren, geben Sie die Implements-Schlüsselwort (keyword) (die von der Implements
-Anweisung getrennt ist) an, wenn Sie das Element in der Klasse oder Struktur deklarieren. Weitere Informationen finden Sie unter Schnittstellen.
Klassen können private Implementierungen von Eigenschaften und Prozeduren verwenden, aber auf diese Member kann nur zugegriffen werden, indem ein instance der implementierenden Klasse in eine Variable umgewandelt wird, die als vom Typ der Schnittstelle deklariert wird.
Beispiel 1
Im folgenden Beispiel wird gezeigt, wie die Implements
-Anweisung verwendet wird, um Member einer Schnittstelle zu implementieren. Es definiert eine Schnittstelle namens ICustomerInfo
mit einem Ereignis, einer Eigenschaft und einer Prozedur. Die customerInfo
-Klasse implementiert alle in der -Schnittstelle definierten Member.
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
Beachten Sie, dass die customerInfo
-Klasse die Implements
-Anweisung in einer separaten Quellcodezeile verwendet, um anzugeben, dass die Klasse alle Member der ICustomerInfo
Schnittstelle implementiert. Anschließend verwendet jeder Member in der -Klasse den Implements
Schlüsselwort (keyword) als Teil seiner Memberdeklaration, um anzugeben, dass dieser Schnittstellenmember implementiert wird.
Beispiel 2
Die folgenden beiden Verfahren zeigen, wie Sie die im vorherigen Beispiel implementierte Schnittstelle verwenden können. Um die Implementierung zu testen, fügen Sie diese Verfahren ihrem Projekt hinzu, und rufen Sie die Prozedur auf 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