Delen via


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

Zie ook