Metody częściowe (Visual Basic)
Metody częściowe umożliwiają deweloperom wstawianie niestandardowej logiki do kodu. Zazwyczaj kod jest częścią klasy generowanej przez projektanta. Metody częściowe są definiowane w klasie częściowej, która jest tworzona przez generator kodu, i są one często używane do dostarczania powiadomienia, że coś zostało zmienione. Umożliwiają deweloperowi określenie niestandardowego zachowania w odpowiedzi na zmianę.
Projektant generatora kodu definiuje tylko podpis metody i co najmniej jedno wywołanie metody do metody. Deweloperzy mogą następnie udostępniać implementacje metody, jeśli chcą dostosować zachowanie wygenerowanego kodu. Jeśli implementacja nie zostanie podana, wywołania metody są usuwane przez kompilator, co nie powoduje dodatkowego obciążenia związanego z wydajnością.
Deklaracji
Wygenerowany kod oznacza definicję metody częściowej, umieszczając słowo kluczowe Partial
na początku wiersza podpisu.
Partial Private Sub QuantityChanged()
End Sub
Definicja musi spełniać następujące warunki:
Metoda musi być metodą
Sub
, a nie .Function
Treść metody musi być pozostawiona pusta.
Modyfikator dostępu musi mieć wartość
Private
.
Implementacja
Implementacja składa się głównie z wypełniania treści metody częściowej. Implementacja jest zwykle w oddzielnej klasie częściowej od definicji i jest napisana przez dewelopera, który chce rozszerzyć wygenerowany kod.
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
Poprzedni przykład duplikuje podpis w deklaracji dokładnie, ale możliwe są odmiany. W szczególności można dodać inne modyfikatory, takie jak Overloads
lub Overrides
. Dozwolony jest tylko jeden Overrides
modyfikator. Aby uzyskać więcej informacji na temat modyfikatorów metod, zobacz Sub Statement.
Używanie
Wywołasz metodę częściową, tak jak wywołasz dowolną inną Sub
procedurę. Jeśli metoda została zaimplementowana, argumenty są oceniane, a treść metody jest wykonywana. Należy jednak pamiętać, że implementacja metody częściowej jest opcjonalna. Jeśli metoda nie jest zaimplementowana, wywołanie metody nie ma żadnego efektu, a wyrażenia przekazane jako argumenty do metody nie są oceniane.
Przykład
W pliku o nazwie Product. Projektant.vb zdefiniuj klasę Product
Quantity
, która ma właściwość.
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
W pliku o nazwie Product.vb podaj implementację dla elementu QuantityChanged
.
Partial Class Product
Private Sub QuantityChanged()
MsgBox("Quantity was changed to " & Me.Quantity)
End Sub
End Class
Na koniec w metodzie Main projektu zadeklaruj Product
wystąpienie i podaj początkową wartość jego Quantity
właściwości.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Powinno zostać wyświetlone okno komunikatu, które wyświetla ten komunikat:
Quantity was changed to 100