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 se odeberou kompilátorem, což vede k žádným dodatečným režijním nákladům na výkon.

Deklarace

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 , Subnikoli Function.

  • Tělo metody musí být ponecháno prázdné.

  • Modifikátor přístupu musí být Private.

Implementace

Implementace se skládá především z 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 tak, jak byste volali 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é