Dela via


Implementerar -instruktion

Anger ett eller flera gränssnitt, eller gränssnittsmedlemmar, som måste implementeras i den klass- eller strukturdefinition som den visas i.

Syntax

Implements interfacename [, ...]  
' -or-  
Implements interfacename.interfacemember [, ...]  

Delar

interfacename
Obligatoriska. Ett gränssnitt vars egenskaper, procedurer och händelser ska implementeras av motsvarande medlemmar i klassen eller strukturen.

interfacemember
Obligatoriska. Medlemmen i ett gränssnitt som implementeras.

Kommentarer

Ett gränssnitt är en samling prototyper som representerar medlemmarna (egenskaper, procedurer och händelser) som gränssnittet kapslar in. Gränssnitten innehåller endast deklarationer för medlemmar. klasser och strukturer implementerar dessa medlemmar. Mer information finns i Gränssnitt.

-instruktionen Implements måste omedelbart följa instruktionen Class eller Structure .

När du implementerar ett gränssnitt måste du implementera alla medlemmar som deklarerats i gränssnittet. Att utelämna en medlem anses vara ett syntaxfel. Om du vill implementera en enskild medlem anger du nyckelordet Implementerar (som är separat från -instruktionen Implements ) när du deklarerar medlemmen i klassen eller strukturen. Mer information finns i Gränssnitt.

Klasser kan använda privata implementeringar av egenskaper och procedurer, men dessa medlemmar är endast tillgängliga genom att omvandla en instans av implementeringsklassen till en variabel som deklarerats vara av typen av gränssnitt.

Exempel 1

I följande exempel visas hur du använder -instruktionen Implements för att implementera medlemmar i ett gränssnitt. Det definierar ett gränssnitt med namnet ICustomerInfo med en händelse, en egenskap och en procedur. Klassen customerInfo implementerar alla medlemmar som definierats i gränssnittet.

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

Observera att klassen customerInfo använder -instruktionen Implements på en separat källkodsrad för att indikera att klassen implementerar alla medlemmar i ICustomerInfo gränssnittet. Sedan använder varje medlem i klassen nyckelordet Implements som en del av medlemsdeklarationen för att ange att det implementerar den gränssnittsmedlemmen.

Exempel 2

Följande två procedurer visar hur du kan använda gränssnittet som implementerades i föregående exempel. Om du vill testa implementeringen lägger du till dessa procedurer i projektet och anropar proceduren 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

Se även