部分方法 (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 陳述式。
使用
呼叫部分方法的方式與呼叫任何其他 Sub
程序時一樣。 如果已實作方法,引數就會經過評估,方法主體也會獲得執行。 不過,請記住,實作部分方法並非必需。 如果未實作方法,方法的呼叫就沒有作用,以引數形式傳遞至方法的運算式也不會經過評估。
範例
請在名為 Product.Designer.vb 的檔案中,定義具有 Quantity
屬性的 Product
類別。
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