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 ein Function 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 QuantityChangedan.

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

Siehe auch