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
TestInterface
innerhalb vonModule1
, indem SieInterface TestInterface
zwischen den AnweisungenModule
undEnd Module
eingeben und dann die EINGABETASTE drücken. Der Code-Editor rückt dasInterface
Schlüsselwort ein und fügt eineEnd Interface
Anweisung 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
Interface
undEnd Interface
einfü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
ImplementationClass
hinzu, indem Sie die folgende Anweisung nach derModule1
-Anweisung, aber vor derEnd Interface
-Anweisung hinzufügen und dann die EINGABETASTE drücken:Class ImplementationClass
Wenn Sie in der integrierten Entwicklungsumgebung arbeiten, stellt der Code-Editor beim Drücken der EINGABETASTE eine übereinstimmende
End Class
Anweisung ein.Fügen Sie die folgende
Implements
-Anweisung zuImplementationClass
hinzu, die der von der Klasse implementierte Schnittstelle einen Namen gibt:Implements TestInterface
Wenn sie getrennt von anderen Elementen oben in einer Klasse oder Struktur aufgeführt werden, gibt die
Implements
Anweisung an, dass die Klasse oder Struktur eine Schnittstelle implementiert.Wenn Sie in der integrierten Entwicklungsumgebung arbeiten, implementiert der Code-Editor die Klassenmitglieder, die von
TestInterface
benö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
MyInterface
implementieren. Fügen Sie den folgenden Code zuImplementationClass
hinzu, umEvent1
,Method1
undProp1
zu 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 Property
Die
Implements
Anweisung benennt die implementierte Schnittstelle und das Schnittstellenmemm.Schließen Sie die Definition
Prop1
ab, indem Sie der Klasse, die den Eigenschaftswert gespeichert hat, ein privates Feld hinzufügen:' Holds the value of the property. Private pval As Integer
Geben Sie den Wert des
pval
aus dem get-Accessor der Eigenschaft zurück.Return pval
Legen Sie den Wert von
pval
im get-Accessor der Eigenschaft fest.pval = value
Vervollstä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
testInstance
Klasse das folgendeForm1
Feld hinzu:Dim WithEvents testInstance As TestInterface
Wenn Sie
testInstance
alsWithEvents
deklarieren, kann dieForm1
--Klasse ihre Ereignisse behandeln.Fügen Sie zur
Form1
Klasse den folgenden Ereignishandler hinzu, um Ereignisse zu behandeln, die vontestInstance
ausgelöst werden.Sub EventHandler() Handles testInstance.Event1 MsgBox("The event handler caught the event.") End Sub
Fügen Sie der Klasse
Test
eine Unterroutine namensForm1
hinzu, 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 Sub
Die
Test
Prozedur erstellt eine Instanz der Klasse, die implementiertMyInterface
, diese Instanz demtestInstance
Feld zuweist, eine Eigenschaft festlegt und eine Methode über die Schnittstelle ausführt.Fügen Sie Code hinzu, um die
Test
Prozedur aus derForm1 Load
Prozedur 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 Sub
Führen Sie die
Test
Prozedur 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.