共用方式為


部分方法(Visual Basic)

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

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

聲明

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

Partial Private Sub QuantityChanged()  
End Sub  

定義必須符合下列條件:

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

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

  • 存取修飾詞必須是 Private

實施

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

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

上述範例會完全複製宣告中的簽章,但可能會有變化。 特別是,可以新增其他修飾詞,例如 OverloadsOverrides。 只允許一個 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

另請參閱