Freigeben über


Partielle Methoden (Visual Basic)

Partielle Methoden ermöglichen Entwicklern das Einfügen benutzerdefinierter Logik in Code. In der Regel ist der Code Teil einer vom Designer generierten Klasse. Partielle Methoden werden in einer partiellen Klasse definiert, die von einem Codegenerator erstellt wird, und sie werden häufig verwendet, um Benachrichtigungen bereitzustellen, dass etwas geändert wurde. Sie ermöglichen es dem Entwickler, benutzerdefiniertes Verhalten als Reaktion auf die Änderung anzugeben.

Der Designer des Codegenerators definiert nur die Methodensignatur und mindestens einen Aufruf der Methode. Entwickler können dann Implementierungen für die Methode bereitstellen, wenn sie das Verhalten des generierten Codes anpassen möchten. Wenn keine Implementierung bereitgestellt wird, werden Aufrufe der Methode vom Compiler entfernt, was zu keinem zusätzlichen Leistungsaufwand führt.

Erklärung

Der generierte Code markiert die Definition einer partiellen Methode, indem das Schlüsselwort Partial am Anfang der Signaturzeile platziert wird.

Partial Private Sub QuantityChanged()  
End Sub  

Die Definition muss die folgenden Bedingungen erfüllen:

  • Die Methode muss eine Sub sein, nicht eine Function.

  • Der Rumpf der Methode muss leer sein.

  • Der Zugriffsmodifizierer muss sein Private.

Implementierung

Die Implementierung besteht in erster Linie aus dem Ausfüllen des Textkörpers der partiellen Methode. Die Implementierung befindet sich in der Regel in einer separaten partiellen Klasse von der Definition und wird von einem Entwickler geschrieben, der den generierten Code erweitern möchte.

Private Sub QuantityChanged()  
'    Code for executing the desired action.  
End Sub  

Im vorherigen Beispiel wird die Signatur in der Deklaration genau dupliziert, aber Variationen sind möglich. Insbesondere können andere Modifizierer hinzugefügt werden, wie z. B. Overloads oder Overrides. Es ist nur ein Overrides Modifizierer zulässig. Weitere Informationen zu Methodenmodifizierern finden Sie unter Sub-Anweisung.

Verwendung

Sie rufen eine partielle Methode auf, wie Sie eine andere Sub Prozedur aufrufen würden. Wenn die Methode implementiert wurde, werden die Argumente ausgewertet und der Textkörper der Methode ausgeführt. Denken Sie jedoch daran, dass die Implementierung einer partiellen Methode optional ist. Wenn die Methode nicht implementiert ist, hat ein Aufruf dieser Methode keine Auswirkung, und Ausdrücke, die als Argumente an die Methode übergeben werden, werden nicht ausgewertet.

Beispiel

Definieren Sie in einer Datei mit dem Namen Product.Designer.vb eine Product Klasse mit einer Quantity Eigenschaft.

Partial Class Product

    Private _Quantity As Integer

    Property Quantity() As Integer
        Get
            Return _Quantity
        End Get
        Set(ByVal value As Integer)
            _Quantity = value
            QuantityChanged()
        End Set
    End Property

    ' Provide a signature for the partial method.
    Partial Private Sub QuantityChanged()
    End Sub
End Class

Geben Sie in einer Datei namens Product.vb eine Implementierung für QuantityChanged.

Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

Deklarieren Sie schließlich in der Main-Methode eines Projekts eine Product Instanz, und geben Sie einen Anfangswert für ihre Quantity Eigenschaft an.

Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

Ein Meldungsfeld sollte angezeigt werden, in dem diese Meldung angezeigt wird:

Quantity was changed to 100

Siehe auch