Partager via


Procédure pas à pas : création et implémentation d'interfaces

Mise à jour : novembre 2007

Les interfaces décrivent les caractéristiques des propriétés, des méthodes et des événements, mais laissent les détails d'implémentation aux structures ou aux classes.

Cette procédure pas à pas explique comment déclarer et implémenter une interface.

Remarque :

Selon vos paramètres actifs ou votre édition, les boîtes de dialogue et les commandes de menu que vous voyez peuvent différer de celles qui sont décrites dans l'aide. Pour modifier vos paramètres, choisissez Importation et exportation de paramètres dans le menu Outils. Pour plus d'informations, consultez Paramètres Visual Studio.

Pour définir une interface

  1. Ouvrez un nouveau projet d'application Windows Visual Basic.

  2. Ajoutez un nouveau module au projet en cliquant sur Ajouter un module dans le menu Projet.

  3. Nommez le nouveau module Module1.vb et cliquez sur Ajouter. Le code du nouveau module s'affiche.

  4. Définissez une interface nommée TestInterface dans Module1 en tapant Interface TestInterface entre les instructions Module et End Module, puis en appuyant sur ENTRÉE. L'éditeur de code met en retrait le mot clé Interface et ajoute une instruction End Interface pour constituer un bloc de code.

  5. Définissez une propriété, une méthode et un événement pour l'interface en insérant le code suivant entre les instructions Interface et End Interface :

    Property Prop1() As Integer
    Sub Method1(ByVal X As Integer)
    Event Event1()
    

Implémentation

Vous remarquez peut-être que la syntaxe utilisée pour déclarer des membres d'interface est différente de celle utilisée pour déclarer des membres de classe. Cette différence reflète le fait que les interfaces ne peuvent pas contenir le code d'implémentation.

Pour implémenter l'interface

  1. Ajoutez une classe nommée ImplementationClass en ajoutant l'instruction ci-après à Module1 entre les instructions End Interface et End Module, puis appuyez sur ENTRÉE :

    Class ImplementationClass
    

    Si vous travaillez dans l'environnement de développement intégré, l'éditeur de code fournit une instruction End Class concordante lorsque vous appuyez sur ENTRÉE.

  2. Ajoutez l'instruction Implements suivante à ImplementationClass, qui nomme l'interface que la classe implémente :

    Implements TestInterface
    

    Lorsqu'elle est séparée d'autres éléments en haut d'une classe ou d'une structure, l'instruction Implements indique que la classe ou structure implémente une interface.

    Si vous travaillez dans l'environnement de développement intégré, l'éditeur de code implémente les membres de classe requis par TestInterface lorsque vous appuyez sur ENTRÉE et vous pouvez ignorer l'étape suivante.

  3. Si vous ne travaillez pas dans l'environnement de développement intégré, vous devez implémenter tous les membres de l'interface MyInterface. Ajoutez le code suivant à ImplementationClass pour implémenter Event1, Method1 et Prop1 :

    Event Event1() Implements TestInterface.Event1
    
    Public Sub Method1(ByVal X As Integer) Implements TestInterface.Method1
    End Sub
    
    Public Property Prop1() As Integer Implements TestInterface.Prop1
        Get
        End Get
        Set(ByVal value As Integer)
        End Set
    End Property
    

    L'instruction Implements nomme l'interface et le membre d'interface en cours d'implémentation.

  4. Complétez la définition de Prop1 en ajoutant un champ privé à la classe qui a stocké la valeur de propriété :

    ' Holds the value of the property.
    Private pval As Integer
    

    Retournez la valeur du pval de l'accesseur get de propriété.

    Return pval
    

    Définissez la valeur de pval dans l'accesseur set de propriété.

    pval = value
    
  5. Complétez la définition de Method1 en ajoutant le code suivant.

    MsgBox("The X parameter for Method1 is " & X)
    RaiseEvent Event1()
    

Pour tester l'implémentation de l'interface

  1. Cliquez avec le bouton droit sur le formulaire de démarrage de votre projet dans l'Explorateur de solutions et cliquez sur Afficher le code. L'éditeur affiche la classe de votre formulaire de départ. Par défaut, le formulaire de démarrage s'appelle Form1.

  2. Ajoutez le champ suivant testInstance à la classe Form1 :

    Dim WithEvents testInstance As TestInterface
    

    En déclarant testInstance comme WithEvents, la classe Form1 peut gérer ses événements.

  3. Ajoutez le gestionnaire d'événements suivant à la classe Form1 pour gérer les événements déclenchés par testInstance :

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Ajoutez une sous-routine nommée Test à la classe Form1 pour tester la classe d'implémentation :

    Sub Test()
        '  Create an instance of the class.
        Dim T As New ImplementationClass
        ' Assign the class instance to the interface.
        ' Calls to the interface members are 
        ' executed through the class instance.
        testInstance = T
        ' Set a property.
        testInstance.Prop1 = 9
        ' Read the property.
        MsgBox("Prop1 was set to " & testInstance.Prop1)
        '  Test the method and raise an event.
        testInstance.Method1(5)
    End Sub
    

    La procédure Test crée une instance de la classe qui implémente MyInterface, assigne cette instance au champ testInstance, définit une propriété et exécute une méthode par le biais de l'interface.

  5. Ajoutez du code pour appeler la procédure Test à partir de la procédure Form1 Load de votre formulaire de départ :

    Private Sub Form1_Load(ByVal sender As System.Object, _
                           ByVal e As System.EventArgs) _
                           Handles MyBase.Load
        Test() ' Test the class.
    End Sub
    
  6. Exécutez la procédure Test en appuyant sur F5. Le message "Prop1 was set to 9" s'affiche. Après avoir cliqué sur OK, le message "The X parameter for Method1 is 5" s'affiche. Cliquez sur OK et le message "The event handler caught the event" s'affiche.

Voir aussi

Tâches

Comment : créer et implémenter des interfaces

Concepts

Quand utiliser des interfaces

Référence

Implements, instruction

Interface, instruction (Visual Basic)

Event, instruction

Autres ressources

Interfaces en Visual Basic