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

Siehe auch