方法 : 部分メソッドを作成する (Visual Basic)

更新 : 2007 年 11 月

部分メソッドを使用すると、開発者は、デザイナ生成のコードにカスタム ロジックを挿入できます。このようなカスタム ロジックは、データ検証に使用するのが一般的です。部分メソッドの作成は、メソッドのシグネチャの定義と、実装の作成という 2 つの部分に分かれます。通常、定義はコード ジェネレータのデザイナによって記述され、実装は生成されたコードを使用する開発者が記述します。詳細については、「部分メソッド」を参照してください。

メソッドのシグネチャを定義するには

  1. 部分クラスでは、キーワード Partial によりシグネチャを開始します。

  2. アクセス修飾子として Private を使用します。

  3. Sub キーワードを追加します。メソッドは、Sub プロシージャである必要があります。

  4. メソッドの名前を記述します。

  5. メソッドのパラメータ リストを指定します。

  6. End Sub でメソッドを終了します。

メソッドを実装するには

  1. アクセス修飾子として Private を使用します。

  2. 他に含める修飾子があれば、それらを追加します。

  3. メソッドの名前を記述します。この名前は、シグネチャ定義での名前と一致する必要があります。

  4. パラメータ リストを追加します。パラメータ名は、シグネチャでの名前一致する必要があります。パラメータのデータ型は省略できます。

  5. メソッドの本体を定義します。

  6. End Sub ステートメントで閉じます。

使用例

部分メソッドの定義と実装は、通常、部分クラスを使用して作成される異なるファイルに格納されます。一般に、部分メソッドの目的は、プロジェクト内の何かが変更されたことを通知することです。

次の例では、OnNameChanged という名前の部分メソッドを作成して呼び出します。メソッドのシグネチャは、Customer.Designer.vb ファイルの部分クラス Customer で定義されています。実装は Customer.vb ファイルの部分クラス Customer に含まれ、Customer のインスタンスはクラスを使用するプロジェクトで作成されます。

結果は、次のようなメッセージを含むメッセージ ボックスです。

Name was changed to: Blue Yonder Airlines.

' File Customer.Designer.vb provides a partial class definition for
' Customer, which includes the signature for partial method 
' OnNameChanged.
Partial Class Customer
    Private _Name As String
    Property Name() As String
        Get
            Return _Name
        End Get
        Set(ByVal value As String)
            _Name = value
            OnNameChanged()
        End Set
    End Property

    ' Definition of the partial method signature.
    Partial Private Sub OnNameChanged()

    End Sub
End Class
' In a separate file, a developer who wants to use the partial class
' and partial method fills in an implementation for OnNameChanged.
Partial Class Customer

    ' Implementation of the partial method.
    Private Sub OnNameChanged()
        MsgBox("Name was changed to " & Me.Name)
    End Sub
End Class
Module Module1

    Sub Main()
        ' Creation of cust will invoke the partial method.
        Dim cust As New Customer With {.Name = "Blue Yonder Airlines"}
    End Sub
End Module

参照

概念

部分メソッド

参照

Partial (Visual Basic)