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