Partielle Methoden
Aktualisiert: November 2007
Mit partiellen Methoden können Entwickler benutzerdefinierte Logik in Code einfügen. In der Regel ist der Code Teil einer vom Designer generierten Klasse. Partielle Methoden werden in einer partiellen Klasse definiert, die von einem Code-Generator erstellt wird. Sie werden im Allgemeinen verwendet, um Benachrichtigungen über Änderungen bereitzustellen. Sie ermöglichen es dem Entwickler, eine benutzerdefinierte Reaktion auf eine Änderung anzugeben.
Vom Designer des Code-Generators werden nur die Methodensignatur und ein oder mehrere Aufrufe für die Methode definiert. Anschließend können Entwickler 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, sodass kein überflüssiger Leistungsverlust auftritt.
Deklaration
Im generierten Code wird die Definition einer partiellen Methode am Anfang der Signatur mit dem Schlüsselwort Partial gekennzeichnet.
Partial Private Sub QuantityChanged()
End Sub
Die Definition muss die folgenden Bedingungen erfüllen:
Die Methode muss als Sub und nicht als Function deklariert sein.
Der Methodentext muss leer sein.
Der Zugriffsmodifizierer muss Private sein.
Implementierung
In der Implementierung wird hauptsächlich der partielle Methodentext ausgefüllt. Die Implementierung erfolgt in der Regel in einer von der Definition getrennten partiellen Klasse 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 aus der Deklaration genau übernommen, es sind jedoch auch Variationen möglich. Insbesondere können weitere Modifizierer hinzugefügt werden, z. B. Overloads oder Overrides. Es ist nur ein Overrides-Modifizierer erlaubt. Weitere Informationen über Methodenmodifizierer finden Sie unter Sub-Anweisung (Visual Basic).
Verwendung
Sie rufen eine partielle Methode genauso wie jede andere Sub-Prozedur auf. Wenn die Methode implementiert wurde, werden die Argumente ausgewertet und der Methodentext wird ausgeführt. Beachten Sie jedoch, dass eine partielle Methode nicht implementiert werden muss. Wenn die Methode nicht implementiert wurde, hat ein Aufruf der Methode keine Auswirkungen, und die der Methode als Argumente übergebenen Ausdrücke werden nicht ausgewertet.
Beispiel
Definieren Sie in einer Datei mit dem Namen Product.Designer.vb die Klasse Product mit der Eigenschaft Quantity.
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
Stellen Sie in einer Datei mit dem Namen Product.vb eine Implementierung für QuantityChanged bereit.
Partial Class Product
Private Sub QuantityChanged()
MsgBox("Quantity was changed to " & Me.Quantity)
End Sub
End Class
Deklarieren Sie abschließend in der Main-Methode eines Projekts eine Product-Instanz, und stellen Sie einen Anfangswert für die Quantity-Eigenschaft bereit.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Es sollte ein Meldungsfeld mit der folgenden Meldung angezeigt werden:
Quantity was changed to 100
Siehe auch
Konzepte
Codegenerierung in LINQ to SQL
Hinzufügen von Geschäftslogik durch das Verwenden partieller Methoden (LINQ to SQL)