Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Schnittstellen beschreiben die Merkmale von Eigenschaften, Methoden und Ereignissen, überlassen die Implementierungsdetails jedoch Strukturen oder Klassen.
In dieser exemplarischen Vorgehensweise wird das Deklarieren und Implementieren einer Schnittstelle veranschaulicht.
Hinweis
In dieser Anleitung werden keine Informationen zum Erstellen einer Benutzeroberfläche bereitgestellt.
Hinweis
Auf Ihrem Computer werden möglicherweise unterschiedliche Namen oder Speicherorte für einige der Visual Studio-Benutzeroberflächenelemente in den folgenden Anweisungen angezeigt. Die Visual Studio-Edition, über die Sie verfügen, und die Einstellungen, die Sie verwenden, bestimmen diese Elemente. Weitere Informationen finden Sie unter Personalisierung der IDE.
So definieren Sie eine Schnittstelle
Öffnen Sie ein neues Visual Basic Windows Application-Projekt.
Fügen Sie dem Projekt ein neues Modul hinzu, indem Sie im Menü "Projekt" auf "Modul hinzufügen" klicken.
Benennen Sie das neue Modul
Module1.vb, und klicken Sie auf "Hinzufügen". Der Code für das neue Modul wird angezeigt.Definieren Sie eine Schnittstelle namens
TestInterfaceinnerhalb vonModule1, indem SieInterface TestInterfacezwischen den AnweisungenModuleundEnd Moduleeingeben und dann die EINGABETASTE drücken. Der Code-Editor rückt dasInterfaceSchlüsselwort ein und fügt eineEnd InterfaceAnweisung hinzu, um einen Codeblock zu erstellen.Definieren Sie eine Eigenschaft, eine Methode und ein Ereignis für die Schnittstelle, indem Sie den folgenden Code zwischen den Platzhaltern
InterfaceundEnd Interfaceeinfügen.Property Prop1() As Integer Sub Method1(ByVal X As Integer) Event Event1()
Implementierung
Möglicherweise stellen Sie fest, dass die Syntax, die zum Deklarieren von Schnittstellenmelementen verwendet wird, von der Syntax abweicht, die zum Deklarieren von Klassenmitgliedern verwendet wird. Dieser Unterschied spiegelt die Tatsache wider, dass Schnittstellen keinen Implementierungscode enthalten können.
So implementieren Sie die Schnittstelle
Fügen Sie eine Klasse mit dem Namen
ImplementationClasshinzu, indem Sie die folgende Anweisung nach derModule1-Anweisung, aber vor derEnd Interface-Anweisung hinzufügen und dann die EINGABETASTE drücken:Class ImplementationClassWenn Sie in der integrierten Entwicklungsumgebung arbeiten, stellt der Code-Editor beim Drücken der EINGABETASTE eine übereinstimmende
End ClassAnweisung ein.Fügen Sie die folgende
Implements-Anweisung zuImplementationClasshinzu, die der von der Klasse implementierte Schnittstelle einen Namen gibt:Implements TestInterfaceWenn sie getrennt von anderen Elementen oben in einer Klasse oder Struktur aufgeführt werden, gibt die
ImplementsAnweisung an, dass die Klasse oder Struktur eine Schnittstelle implementiert.Wenn Sie in der integrierten Entwicklungsumgebung arbeiten, implementiert der Code-Editor die Klassenmitglieder, die von
TestInterfacebenötigt werden, wenn Sie die EINGABETASTE drücken, und Sie können den nächsten Schritt überspringen.Wenn Sie nicht in der integrierten Entwicklungsumgebung arbeiten, müssen Sie alle Member der Schnittstelle
MyInterfaceimplementieren. Fügen Sie den folgenden Code zuImplementationClasshinzu, umEvent1,Method1undProp1zu implementieren.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 PropertyDie
ImplementsAnweisung benennt die implementierte Schnittstelle und das Schnittstellenmemm.Schließen Sie die Definition
Prop1ab, indem Sie der Klasse, die den Eigenschaftswert gespeichert hat, ein privates Feld hinzufügen:' Holds the value of the property. Private pval As IntegerGeben Sie den Wert des
pvalaus dem get-Accessor der Eigenschaft zurück.Return pvalLegen Sie den Wert von
pvalim get-Accessor der Eigenschaft fest.pval = valueVervollständigen Sie die Definition von
Method1, indem Sie den folgenden Code hinzufügen.MsgBox("The X parameter for Method1 is " & X) RaiseEvent Event1()
Die Implementierung der Schnittstelle testen
Klicken Sie im Projektmappen-Explorer mit der rechten Maustaste auf das Startformular für Ihr Projekt, und klicken Sie dann auf "Code anzeigen". Der Editor zeigt die Klasse für Ihr Startformular an. Standardmäßig heißt das Startformular
Form1.Fügen Sie der
testInstanceKlasse das folgendeForm1Feld hinzu:Dim WithEvents testInstance As TestInterfaceWenn Sie
testInstancealsWithEventsdeklarieren, kann dieForm1--Klasse ihre Ereignisse behandeln.Fügen Sie zur
Form1Klasse den folgenden Ereignishandler hinzu, um Ereignisse zu behandeln, die vontestInstanceausgelöst werden.Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End SubFügen Sie der Klasse
Testeine Unterroutine namensForm1hinzu, um die Implementierungsklasse zu testen.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 SubDie
TestProzedur erstellt eine Instanz der Klasse, die implementiertMyInterface, diese Instanz demtestInstanceFeld zuweist, eine Eigenschaft festlegt und eine Methode über die Schnittstelle ausführt.Fügen Sie Code hinzu, um die
TestProzedur aus derForm1 LoadProzedur des Startformulars aufzurufen:Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Test() ' Test the class. End SubFühren Sie die
TestProzedur aus, indem Sie F5 drücken. Die Meldung "Prop1 wurde auf 9 festgelegt" wird angezeigt. Nachdem Sie auf "OK" geklickt haben, wird die Meldung "Der X-Parameter für Methode1 ist 5" angezeigt. Klicken Sie auf „OK“, und die Meldung „Der Ereignishandler hat das Ereignis abgefangen“ wird angezeigt.