Partager via


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

Implements (Visual Basic)

Interface, instruction (Visual Basic)

Autres ressources

Interfaces en Visual Basic

Polymorphisme