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
Ouvrez un nouveau projet d’application Windows Visual Basic.
Ajoutez un nouveau module au projet en cliquant sur Ajouter un module dans le menu Projet .
Nommez le nouveau fichier
Module1.vb
, puis cliquez sur Ajouter. Le code du nouveau module s’affiche.Définissez une interface nommée
TestInterface
dansModule1
en tapantInterface TestInterface
entre les instructionsModule
etEnd Module
, puis en appuyant sur ENTRÉE. L’éditeur de code met en retrait le mot cléInterface
et ajoute une instructionEnd Interface
pour former un bloc de code.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
etEnd 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
Ajoutez une classe nommée
ImplementationClass
en ajoutant l’instruction suivante àModule1
, après l’instructionEnd Interface
mais avant l’instructionEnd 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.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.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émenterEvent1
,Method1
etProp1
: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.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
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
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
.Ajoutez le
testInstance
champ suivant à la classeForm1
:Dim WithEvents testInstance As TestInterface
En déclarant
testInstance
en tant queWithEvents
, la classeForm1
peut gérer ses événements.Ajoutez le gestionnaire d’événements suivant à la classe
Form1
pour gérer les événements déclenchés partestInstance
:Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Ajoutez une sous-routine nommée
Test
à la classeForm1
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émenteMyInterface
, affecte cette instance au champtestInstance
, définit une propriété et exécute une méthode à travers l'interface.Ajoutez du code pour appeler la procédure
Test
à partir de la procédureForm1 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
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.