Implements, instruction
Spécifie une ou plusieurs interfaces, ou un ou plusieurs membres d’interface, à implémenter dans la définition de classe ou de structure dans laquelle elle apparaît.
Syntaxe
Implements interfacename [, ...]
' -or-
Implements interfacename.interfacemember [, ...]
Éléments
interfacename
Obligatoire. Interface dont les propriétés, les procédures et les événements doivent être implémentés par les membres correspondants dans la classe ou la structure.
interfacemember
Obligatoire. Membre d’une interface en cours d’implémentation.
Notes
Une interface est une collection de prototypes représentant les membres (propriétés, procédures et événements) que l’interface encapsule. Les interfaces contiennent uniquement les déclarations des membres ; les classes et les structures implémentent ces membres. Pour plus d'informations, consultez Interfaces.
L’instruction Implements
doit suivre immédiatement l’instruction Class
ou Structure
.
Lorsque vous implémentez une interface, vous devez implémenter tous les membres déclarés dans l’interface. L’omission d’un membre est considérée comme une erreur de syntaxe. Pour implémenter un membre individuel, vous spécifiez le mot clé Implements (qui est distinct de l’instruction Implements
) lorsque vous déclarez le membre dans la classe ou la structure. Pour plus d'informations, consultez Interfaces.
Les classes peuvent utiliser des implémentations Privées de propriétés et de procédures, mais ces membres sont accessibles uniquement en castant une instance de la classe d’implémentation dans une variable déclarée du type de l’interface.
Exemple 1
L’exemple suivant montre comment utiliser l’instruction Implements
pour implémenter les membres d’une interface. Il définit une interface nommée ICustomerInfo
avec un événement, une propriété et une procédure. La classe customerInfo
implémente tous les membres définis dans l’interface.
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
Notez que la classe customerInfo
utilise l’instruction Implements
sur une ligne de code source distincte pour indiquer que la classe implémente tous les membres de l’interface ICustomerInfo
. Ensuite, chaque membre de la classe utilise le mot clé Implements
dans le cadre de sa déclaration membre pour indiquer qu’il implémente ce membre d’interface.
Exemple 2
Les deux procédures suivantes montrent comment utiliser l’interface implémentée dans l’exemple précédent. Pour tester l’implémentation, ajoutez ces procédures à votre projet et appelez la procédure 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