Implements, instruction
Mise à jour : novembre 2007
Spécifie une ou plusieurs interfaces, ou des membres d'interface qui doivent être implémentés dans la définition de classe ou de structure dans laquelle elle apparaît.
Implements interfacename [, ...]
-or-
Implements interfacename.interfacemember [, ...]
Éléments
interfacename
Obligatoire. Une interface dont les propriétés, procédures et événements doivent être implémentés par des membres correspondants dans la classe ou la structure.interfacemember
Obligatoire. Le 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.
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, vous spécifiez le mot clé Implements (Visual Basic) (qui est distinct de l'instruction Implements) lorsque vous déclarez le membre dans la classe ou la structure. Pour plus d'informations, consultez Implements, mot clé et instruction.
Les classes peuvent utiliser des implémentations Private (Visual Basic) des propriétés et procédures, mais ces membres sont uniquement accessibles par le casting d'une instance de la classe d'implémentation en une variable déclarée comme étant du type de l'interface.
Exemple
L'exemple suivant illustre l'utilisation de 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 sa déclaration membre pour indiquer qu'il implémente ce membre d'interface.
Les deux procédures suivantes illustrent l'utilisation de l'interface implémentée dans l'exemple précédent. Pour tester l'implémentation, ajoutez ces deux 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
Voir aussi
Concepts
Polymorphisme dans Visual Basic
Référence
Interface, instruction (Visual Basic)