Freigeben über


Implements-Anweisung

Gibt eine oder mehrere Schnittstellen oder Schnittstellenmmber 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. Das Element einer Schnittstelle, die implementiert wird.

Bemerkungen

Eine Schnittstelle ist eine Sammlung von Prototypen, die die Member (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 Structure folgen.

Wenn Sie eine Schnittstelle implementieren, müssen Sie alle elemente implementieren, die in der Schnittstelle deklariert sind. Das Weglassen eines Elements wird als Syntaxfehler betrachtet. Um ein einzelnes Element zu implementieren, geben Sie das Implements-Schlüsselwort (das 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 eine Instanz der implementierenden Klasse in eine Variable umgewandelt wird, die als Typ der Schnittstelle deklariert ist.

Beispiel 1

Das folgende Beispiel zeigt, wie Sie die Implements Anweisung verwenden, um Member einer Schnittstelle zu implementieren. Sie definiert eine Schnittstelle, die mit einem Ereignis, einer Eigenschaft und einer Prozedur benannt ICustomerInfo ist. Die Klasse customerInfo implementiert alle elemente, die in der Schnittstelle definiert sind.

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 Klasse customerInfo die Implements Anweisung in einer separaten Quellcodezeile verwendet, um anzugeben, dass die Klasse alle Member der ICustomerInfo Schnittstelle implementiert. Anschließend verwendet jedes Element in der Klasse das Implements Schlüsselwort als Teil der Memberdeklaration, um anzugeben, dass es dieses Schnittstellenelement implementiert.

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 Prozeduren zu Ihrem Projekt hinzu, und rufen Sie die testImplements Prozedur auf.

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