Implements-Anweisung

Aktualisiert: November 2007

Gibt eine oder mehrere Schnittstellen oder Schnittstellenmember an, die in der umgebenden Klassen- oder Strukturdefinition implementiert werden müssen.

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.

  • interfacemember
    Erforderlich. Der Member einer Schnittstelle, der implementiert wird.

Hinweise

Eine Schnittstelle ist eine Auflistung von Prototypen, die die von der Schnittstelle eingekapselten Member (Eigenschaften, Prozeduren und Ereignisse) darstellt. Schnittstellen enthalten nur die Deklarationen für Member. Klassen und Strukturen implementieren diese Member.

Die Implements-Anweisung muss unmittelbar auf die Class-Anweisung oder die Structure-Anweisung folgen.

Wenn Sie eine Schnittstelle implementieren, müssen Sie alle in der Schnittstelle deklarierten Member implementieren. Sie erhalten einen Syntaxfehler, wenn Sie einen der Member auslassen. Um einen einzelnen Member zu implementieren, geben Sie das Implements (Visual Basic)-Schlüsselwort (das nicht mit der Implements-Anweisung identisch ist) an, wenn Sie den Member in der Klasse oder Struktur deklarieren. Weitere Informationen finden Sie unter Implements-Schlüsselwort und Implements-Anweisung.

Klassen können Private (Visual Basic)-Implementierungen von Eigenschaften und Prozeduren verwenden, der Zugriff auf diese Member ist jedoch nur möglich, wenn eine Instanz der implementierenden Klasse in eine Variable umgewandelt wird, die als Typ der Schnittstelle deklariert wird.

Beispiel

Im folgenden Beispiel wird veranschaulicht, wie die Implements-Anweisung verwendet wird, um Member einer Schnittstelle zu implementieren. Im Beispiel wird die Schnittstelle ICustomerInfo mit einem Ereignis, einer Eigenschaft und einer Prozedur definiert. Die customerInfo-Klasse implementiert alle Member, 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 customerInfo-Klasse die Implements-Anweisung in einer eigenen Quellcodezeile verwendet, um anzugeben, dass die Klasse alle Member der ICustomerInfo-Schnittstelle implementiert. Anschließend verwendet jeder Member der Klasse das Implements-Schlüsselwort als Teil seiner Memberdeklaration, um anzugeben, dass er diesen Schnittstellenmember implementiert.

In den folgenden beiden Prozeduren wird veranschaulicht, wie Sie die im vorherigen Beispiel implementierte Schnittstelle verwenden können. Zum Testen der Implementierung fügen Sie dem Projekt diese Prozeduren hinzu und rufen 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

Konzepte

Visual Basic und Polymorphismus

Referenz

Implements (Visual Basic)

Interface-Anweisung (Visual Basic)

Weitere Ressourcen

Schnittstellen in Visual Basic

Polymorphismus