Implementálási utasítás

Egy vagy több illesztőt vagy felülettagot határoz meg, amelyeket abban az osztály- vagy struktúradefinícióban kell implementálnia, amelyben megjelenik.

Syntax

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

Részek

interfacename
Szükséges. Olyan felület, amelynek tulajdonságait, eljárásait és eseményeit az osztály vagy a struktúra megfelelő tagjainak kell megvalósítaniuk.

interfacemember
Szükséges. A implementálandó felület tagja.

Megjegyzések

Az interfész olyan prototípusok gyűjteménye, amelyek a tagoknak (tulajdonságoknak, eljárásoknak és eseményeknek) jelölő prototípusok, amelyekbe az interfész belefoglal. Az interfészek csak a tagok nyilatkozatait tartalmazzák; osztályok és struktúrák implementálják ezeket a tagokat. További információ: Interfészek.

Az Implements utasításnak azonnal követnie kell az utasítástClass.Structure

Az interfész megvalósításakor a felületen deklarált összes tagot végre kell hajtania. A tag kihagyása szintaxishibának minősül. Az egyéni tag implementálásához meg kell adnia a Implements kulcsszót (amely eltér az Implements utasítástól), amikor deklarálja a tagot az osztályban vagy a struktúrában. További információ: Interfészek.

Az osztályok használhatnak tulajdonságok és eljárások privát implementációit, de ezek a tagok csak úgy érhetők el, ha a implementálási osztály egy példányát egy olyan változóba alakítja, amely az interfész típusának van deklarálva.

1. példa

Az alábbi példa bemutatja, hogyan lehet az Implements utasítást használni egy felület tagjainak implementálásához. Egy eseménysel, tulajdonsággal és eljárással elnevezett ICustomerInfo felületet határoz meg. Az osztály customerInfo a felületen definiált összes tagot implementálja.

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

Vegye figyelembe, hogy az osztály customerInfo egy Implements külön forráskódsoron lévő utasítással jelzi, hogy az osztály a felület összes tagját ICustomerInfo implementálja. Ezután az osztály minden tagja a tagdeklaráció részeként használja a Implements kulcsszót, hogy jelezze, hogy megvalósítja ezt a felülettagot.

2. példa

Az alábbi két eljárás bemutatja, hogyan használhatja az előző példában implementált felületet. A megvalósítás teszteléséhez adja hozzá ezeket az eljárásokat a projekthez, és hívja meg az testImplements eljárást.

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

Lásd még