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
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 module Module1.vb et cliquez sur Ajouter. Le code du nouveau module s'affiche.
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.
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
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.
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.
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.
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
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
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.
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.
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
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.
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
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
Référence
Interface, instruction (Visual Basic)