Partielle Methoden (Visual Basic)

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

Referenz

Sub-Anweisung (Visual Basic)

Partial (Visual Basic)

Konzepte

Sub-Prozeduren (Visual Basic)

Optionale Parameter (Visual Basic)

Codegenerierung in LINQ to SQL

Hinzufügen von Geschäftslogik durch das Verwenden partieller Methoden (LINQ to SQL)