Freigeben über


Exemplarische Vorgehensweise: Erstellen und Implementieren von Schnittstellen (Visual Basic)

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

  1. Öffnen Sie ein neues Visual Basic Windows Application-Projekt.

  2. Fügen Sie dem Projekt ein neues Modul hinzu, indem Sie im Menü "Projekt" auf "Modul hinzufügen" klicken.

  3. Benennen Sie das neue Modul Module1.vb , und klicken Sie auf "Hinzufügen". Der Code für das neue Modul wird angezeigt.

  4. Definieren Sie eine Schnittstelle namens TestInterface innerhalb von Module1, indem Sie Interface TestInterface zwischen den Anweisungen Module und End Module eingeben und dann die EINGABETASTE drücken. Der Code-Editor rückt das Interface Schlüsselwort ein und fügt eine End Interface Anweisung hinzu, um einen Codeblock zu erstellen.

  5. Definieren Sie eine Eigenschaft, eine Methode und ein Ereignis für die Schnittstelle, indem Sie den folgenden Code zwischen den Platzhaltern Interface und End 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

  1. Fügen Sie eine Klasse mit dem Namen ImplementationClass hinzu, indem Sie die folgende Anweisung nach der Module1-Anweisung, aber vor der End 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.

  2. Fügen Sie die folgende Implements-Anweisung zu ImplementationClass 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.

  3. Wenn Sie nicht in der integrierten Entwicklungsumgebung arbeiten, müssen Sie alle Member der Schnittstelle MyInterfaceimplementieren. Fügen Sie den folgenden Code zu ImplementationClass hinzu, um Event1, Method1 und Prop1 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.

  4. 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
    
  5. 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

  1. 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.

  2. Fügen Sie der testInstance Klasse das folgende Form1 Feld hinzu:

    Dim WithEvents testInstance As TestInterface
    

    Wenn Sie testInstance als WithEvents deklarieren, kann die Form1--Klasse ihre Ereignisse behandeln.

  3. Fügen Sie zur Form1 Klasse den folgenden Ereignishandler hinzu, um Ereignisse zu behandeln, die von testInstance ausgelöst werden.

    Sub EventHandler() Handles testInstance.Event1
        MsgBox("The event handler caught the event.")
    End Sub
    
  4. Fügen Sie der Klasse Test eine Unterroutine namens Form1 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 implementiert MyInterface, diese Instanz dem testInstance Feld zuweist, eine Eigenschaft festlegt und eine Methode über die Schnittstelle ausführt.

  5. Fügen Sie Code hinzu, um die Test Prozedur aus der Form1 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
    
  6. 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.

Siehe auch