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