Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
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ą programiście określenie niestandardowego zachowania w reakcji na zmianę.
Projektant generatora kodu definiuje tylko podpis metody oraz jedno lub więcej wywołań tej 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ą.
Deklaracja
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ć
Sub, a nieFunction.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żyj
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.Designer.vb zdefiniuj klasę Product, która ma właściwość 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
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 wystąpienie Product i podaj początkową wartość właściwości Quantity.
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