Implements – Příkaz

Určuje jedno nebo více rozhraní nebo členů rozhraní, které musí být implementovány v definici třídy nebo struktury, ve které se zobrazí.

Syntax

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

Součásti

interfacename
Povinná hodnota. Rozhraní, jehož vlastnosti, procedury a události mají být implementovány odpovídajícími členy ve třídě nebo struktuře.

interfacemember
Povinná hodnota. Člen rozhraní, které je implementováno.

Poznámky

Rozhraní je kolekce prototypů představujících členy (vlastnosti, postupy a události), které rozhraní zapouzdřuje. Rozhraní obsahují pouze deklarace pro členy. Třídy a struktury implementují tyto členy. Další informace najdete v tématu Rozhraní.

Příkaz Implements musí hned následovat za Class příkazem nebo Structure .

Při implementaci rozhraní je nutné implementovat všechny členy deklarované v rozhraní. Vynechání jakéhokoli členu se považuje za chybu syntaxe. Chcete-li implementovat jednotlivého člena, zadáte při deklaraci členu ve třídě nebo struktuře klíčové slovo Implements (které je oddělené od Implements příkazu ). Další informace najdete v tématu Rozhraní.

Třídy mohou používat soukromé implementace vlastností a procedur, ale tyto členy jsou přístupné pouze přetypování instance implementující třídy do proměnné deklarované jako typu rozhraní.

Příklad 1

Následující příklad ukazuje, jak použít Implements příkaz k implementaci členů rozhraní. Definuje rozhraní s názvem ICustomerInfo s událostí, vlastností a procedurou. Třída customerInfo implementuje všechny členy definované v rozhraní.

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

Všimněte si, že třída používá příkaz na samostatném řádku zdrojového kódu k označení, že třída implementuje všechny customerInfo Implements členy ICustomerInfo rozhraní. Potom každý člen ve třídě používá klíčové slovo jako součást deklarace členu k označení, že Implements implementuje tohoto člena rozhraní.

Příklad 2

Následující dva postupy ukazují, jak můžete použít rozhraní implementované v předchozím příkladu. Pokud chcete implementaci otestovat, přidejte tyto postupy do projektu a zavolejte testImplements proceduru .

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

Viz také