Partielle Methoden (Visual Basic)
Partielle Methoden ermöglichen es Entwicklern, benutzerdefinierte Logik in Code einzufügen. 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 einen oder mehrere Aufrufe 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.
Deklaration
Der generierte Code markiert die Definition einer partiellen Methode, indem das Schlüsselwort (keyword) Partial
am Anfang der Signaturzeile platziert wird.
Partial Private Sub QuantityChanged()
End Sub
Die Definition muss die folgenden Bedingungen erfüllen:
Die Methode muss ein
Sub
und nicht einFunction
sein.Der Text der Methode muss leer bleiben.
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 Abweichungen sind möglich. Insbesondere können andere Modifizierer hinzugefügt werden, z. B. Overloads
oder Overrides
. Nur ein Overrides
Modifizierer ist zulässig. Weitere Informationen zu Methodenmodifizierern finden Sie unter Sub-Anweisung.
Verwendung
Sie rufen eine partielle Methode wie jede andere Sub
Prozedur auf. Wenn die Methode implementiert wurde, werden die Argumente ausgewertet und der Text 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 der Methode keine Auswirkung, und Ausdrücke, die als Argumente an die -Methode übergeben werden, werden nicht ausgewertet.
Beispiel
In einer Datei mit dem Namen Product. Designer.vb definieren Sie eine Product
-Klasse, die über eine Quantity
-Eigenschaft verfügt.
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 mit dem Namen Product.vb eine Implementierung für QuantityChanged
an.
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 die Quantity
-Eigenschaft an.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Es sollte ein Meldungsfeld angezeigt werden, in dem die folgende Meldung angezeigt wird:
Quantity was changed to 100