Sdílet prostřednictvím


Částečné metody (Visual Basic)

Čá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, nikoli Function.

  • 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

Viz také