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