Sdílet prostřednictvím


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í.

Syntaxe

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

Součástky

interfacename
Povinný: Rozhraní, jehož vlastnosti, procedury a události mají být implementovány odpovídajícími členy třídy nebo struktury.

interfacemember
Povinný: Člen rozhraní, které se implementuje.

Poznámky

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

Příkaz Implements musí okamžitě následovat za příkazem nebo Structure příkazemClass.

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

Třídy mohou používat privátní implementace vlastností a procedur, ale tyto členy jsou přístupné pouze přetypováním instance implementační 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í pojmenované ICustomerInfo 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 customerInfo používá Implements příkaz na samostatném řádku zdrojového kódu k označení, že třída implementuje všechny členy ICustomerInfo rozhraní. Každý člen třídy pak použije Implements klíčové slovo jako součást jeho deklarace členu, aby bylo uvedeno, že implementuje tento člen rozhraní.

Příklad 2

Následující dva postupy ukazují, jak můžete použít rozhraní implementované v předchozím příkladu. Chcete-li otestovat implementaci, přidejte tyto postupy do projektu a zavolejte proceduru 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

Viz také