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