部分方法(Visual Basic)

部分方法可讓開發人員將自定義邏輯插入程式碼中。 一般而言,程式代碼是設計工具產生的類別的一部分。 部分方法定義於程式代碼產生器所建立的部分類別中,而且通常用來提供已變更之事物的通知。 它們可讓開發人員指定自定義行為以回應變更。

程式碼生成器的設計者只會定義方法簽章和對方法的一或多個呼叫。 然後,如果開發人員想要自定義所產生程式代碼的行為,則可以提供方法的實作。 未提供實作時,編譯程式會移除對 方法的呼叫,因此不會造成額外的效能負荷。

聲明

產生的程式代碼會將 關鍵詞 Partial 放在簽章行開頭,以標記部分方法的定義。

Partial Private Sub QuantityChanged()  
End Sub  

定義必須符合下列條件:

  • 方法必須是 Sub,而不是 Function。

  • 方法的主體必須保留空白。

  • 存取修飾詞必須是 Private。

實施

實作主要包括填寫部分方法的主體。 實作通常位於與定義不同的部分類別中,而且是由想要擴充所產生程式代碼的開發人員所撰寫。

Private Sub QuantityChanged()  
'    Code for executing the desired action.  
End Sub  

上述範例會完全複製宣告中的簽章,但可能會有變化。 特別是,可以新增其他修飾詞,例如 Overloads 或 Overrides。 只允許一個 Overrides 修飾詞。 如需方法修飾詞的詳細資訊,請參閱 子語句。

使用

您可以呼叫部分方法,就像呼叫任何其他 Sub 程序一樣。 如果已實作 方法,則會評估自變數,並執行方法的主體。 不過,請記住,實作部分方法是選擇性的。 如果方法未實作,呼叫該方法將無效,並且作為參數傳遞給方法的表達式不會被評估。

範例

在名為 Product.Designer.vb 的檔案中,定義 Product 具有 屬性的 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

在名為 Product.vb 的檔案中,提供對 QuantityChanged 的實作。

Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

最後,在專案的 Main 方法中,宣告 Product 實例,併為其 Quantity 屬性提供初始值。

Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

應該會出現一個訊息方塊,顯示以下訊息:

Quantity was changed to 100

另請參閱