Poznámka
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Částečné metody umožňují vývojářům vložit vlastní logiku do kódu. Kód je obvykle součástí třídy generované návrhářem. Částečné metody jsou definovány v částečné třídě vytvořené generátorem kódu a běžně se používají k poskytování oznámení, že se něco změnilo. Vývojáři umožňují určit vlastní chování v reakci na změnu.
Návrhář generátoru kódu definuje pouze podpis metody a jedno nebo více volání metody. Vývojáři pak mohou poskytnout implementace metody, pokud chtějí přizpůsobit chování vygenerovaného kódu. Pokud není k dispozici žádná implementace, volání metody jsou kompilátorem odstraněna, což nevede k žádné dodatečné výkonnostní zátěži.
Prohlášení
Vygenerovaný kód označuje definici částečné metody umístěním klíčového slova Partial
na začátek řádku podpisu.
Partial Private Sub QuantityChanged()
End Sub
Definice musí splňovat následující podmínky:
Metoda musí být
Sub
, nikoliFunction
.Tělo metody musí být ponecháno prázdné.
Modifikátor přístupu musí být
Private
.
Implementace
Implementace spočívá především ve vyplnění těla částečné metody. Implementace je obvykle v samostatné částečné třídě od definice a je napsána vývojářem, který chce rozšířit vygenerovaný kód.
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
Předchozí příklad duplikuje podpis v deklaraci přesně, ale varianty jsou možné. Zejména mohou být přidány další modifikátory, například Overloads
nebo Overrides
. Je povolen pouze jeden Overrides
modifikátor. Další informace o modifikátorech metody naleznete v části Sub Statement.
Používání
Částečnou metodu zavoláte stejně jako jakoukoli jinou Sub
proceduru. Pokud byla metoda implementována, argumenty jsou vyhodnoceny a tělo metody se provede. Mějte však na paměti, že implementace částečné metody je volitelná. Pokud metoda není implementována, volání nemá žádný účinek a výrazy předané jako argumenty metody nejsou vyhodnoceny.
Příklad
V souboru s názvem Product.Designer.vb definujte Product
třídu, která má Quantity
vlastnost.
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
V souboru s názvem Product.vb zadejte implementaci pro QuantityChanged
.
Partial Class Product
Private Sub QuantityChanged()
MsgBox("Quantity was changed to " & Me.Quantity)
End Sub
End Class
Nakonec v metodě Main projektu deklarujte Product
instanci a zadejte počáteční hodnotu pro jeho Quantity
vlastnost.
Module Module1
Sub Main()
Dim product1 As New Product With {.Quantity = 100}
End Sub
End Module
Mělo by se zobrazit okno se zprávou, které zobrazí tuto zprávu:
Quantity was changed to 100