部分方法可讓開發人員將自定義邏輯插入程式碼中。 一般而言,程式代碼是設計工具產生的類別的一部分。 部分方法定義於程式代碼產生器所建立的部分類別中,而且通常用來提供已變更之事物的通知。 它們可讓開發人員指定自定義行為以回應變更。
程式碼生成器的設計者只會定義方法簽章和對方法的一或多個呼叫。 然後,如果開發人員想要自定義所產生程式代碼的行為,則可以提供方法的實作。 未提供實作時,編譯程式會移除對 方法的呼叫,因此不會造成額外的效能負荷。
聲明
產生的程式代碼會將 關鍵詞 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