Procédure pas à pas : création et implémentation d'interfaces (Visual Basic)

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 montre comment déclarer et implémenter une interface.

Notes

Ce guide ne fournit pas d'informations sur la façon de créer une interface utilisateur.

Notes

Il est possible que pour certains des éléments de l'interface utilisateur de Visual Studio, votre ordinateur affiche des noms ou des emplacements différents de ceux indiqués dans les instructions suivantes. L'édition de Visual Studio dont vous disposez et les paramètres que vous utilisez déterminent ces éléments. Pour plus d’informations, consultez Personnalisation de l’IDE.

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 fichier Module1.vb, puis 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 former un bloc de code.

  5. Définissez une propriété, une méthode et un événement pour l’interface en plaçant 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 remarquerez peut-être que la syntaxe utilisée pour déclarer les membres de l’interface est différente de la syntaxe utilisée pour déclarer les membres de classe. Cette différence reflète le fait que les interfaces ne peuvent pas contenir de code d’implémentation.

Pour mettre en œuvre l'interface

  1. Ajoutez une classe nommée ImplementationClass en ajoutant l’instruction suivante à Module1, après l’instruction End Interface mais avant l’instruction End Module , puis en appuyant sur ENTRÉE :

    Class ImplementationClass
    

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

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

    Implements TestInterface
    

    Lorsqu’elle est répertoriée séparément des autres éléments en haut d’une classe ou d’une structure, l’instruction Implements indique que la classe ou la 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 lorsque TestInterface 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, Method1et 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
    

    Retourne la valeur de pval à partir de l’accesseur get de la propriété.

    Return pval
    

    Définissez la valeur de pval dans l’accesseur du jeu de propriétés.

    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 la mise en œuvre de l'interface

  1. Cliquez avec le bouton droit sur le formulaire de démarrage de votre projet dans l’Explorateur de solutions, puis cliquez sur Afficher le code. L’éditeur affiche la classe pour votre formulaire de démarrage. Par défaut, le formulaire de démarrage est appelé Form1.

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

    Dim WithEvents testInstance As TestInterface
    

    En déclarant testInstance en tant que 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, affecte cette instance au champ testInstance, définit une propriété et exécute une méthode à travers l'interface.

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

    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 a été défini sur 9 » s’affiche. Après avoir cliqué sur OK, le message « Le paramètre X pour La méthode1 est 5 » s’affiche. Cliquez sur OK et le message « Le gestionnaire d’événements a intercepté l’événement » s’affiche.

Voir aussi