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