Implementeert instructie
Hiermee geeft u een of meer interfaces of interfaceleden op die moeten worden geïmplementeerd in de klasse- of structuurdefinitie waarin deze wordt weergegeven.
Syntaxis
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
generator
interfacename
Vereist. Een interface waarvan de eigenschappen, procedures en gebeurtenissen moeten worden geïmplementeerd door overeenkomstige leden in de klasse of structuur.
interfacemember
Vereist. Het lid van een interface die wordt geïmplementeerd.
Opmerkingen
Een interface is een verzameling prototypen die de leden (eigenschappen, procedures en gebeurtenissen) vertegenwoordigen die de interface inkapselt. Interfaces bevatten alleen de declaraties voor leden; klassen en structuren implementeren deze leden. Zie Interfaces voor meer informatie.
De Implements
instructie moet onmiddellijk volgen op de Class
or-instructie Structure
.
Wanneer u een interface implementeert, moet u alle leden implementeren die in de interface zijn gedeclareerd. Het weglaten van een lid wordt beschouwd als een syntaxisfout. Als u een afzonderlijk lid wilt implementeren, geeft u het trefwoord Implements (dat los staat van de Implements
instructie) op wanneer u het lid in de klasse of structuur declareert. Zie Interfaces voor meer informatie.
Klassen kunnen gebruikmaken van privé-implementaties van eigenschappen en procedures, maar deze leden zijn alleen toegankelijk door een exemplaar van de implementatieklasse in te stellen in een variabele die is gedeclareerd als van het type interface.
Voorbeeld 1
In het volgende voorbeeld ziet u hoe u de Implements
instructie gebruikt om leden van een interface te implementeren. Hiermee definieert u een interface met een naam ICustomerInfo
met een gebeurtenis, een eigenschap en een procedure. De klasse customerInfo
implementeert alle leden die in de interface zijn gedefinieerd.
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
Houd er rekening mee dat de klasse customerInfo
de Implements
instructie op een afzonderlijke broncoderegel gebruikt om aan te geven dat de klasse alle leden van de ICustomerInfo
interface implementeert. Vervolgens gebruikt elk lid in de klasse het Implements
trefwoord als onderdeel van de liddeclaratie om aan te geven dat het dat interfacelid implementeert.
Voorbeeld 2
In de volgende twee procedures ziet u hoe u de interface kunt gebruiken die in het voorgaande voorbeeld is geïmplementeerd. Als u de implementatie wilt testen, voegt u deze procedures toe aan uw project en roept u de testImplements
procedure aan.
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