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

Voir aussi