Share via


部分方法 (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 陳述式

使用

呼叫部分方法的方式與呼叫任何其他 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

另請參閱