クリックして評価とフィードバックをお寄せください
MSDN
MSDN ライブラリ
Visual Studio 2008
Visual Studio
Visual Basic
Visual Basic 言語の機能
部分メソッド

  低帯域幅での表示をオンにする
このページは次のバージョンについて記述しています。
Microsoft Visual Studio 2008/.NET Framework 3.5

その他のバージョンについては、以下の情報を参照してください。
Visual Basic のプログラミング ガイド
部分メソッド

更新 : 2007 年 11 月

開発者は、部分メソッドを使用して、カスタム ロジックをコードに挿入できます。通常、このコードは、デザイナによって生成されるクラスの一部です。部分メソッドは、コード ジェネレータによって作成される部分クラスの中に定義され、何かが変更されていることを通知するためによく使用されます。開発者は、これらを使用して、変更に応答する独自の動作を指定できます。

コード ジェネレータのデザイナは、メソッド シグネチャと、メソッドへの 1 つ以上の呼び出しだけを定義します。生成されるコードの動作をカスタマイズする場合、開発者は、メソッドの実装を用意できます。実装の用意がない場合、メソッドへの呼び出しはコンパイラによって削除され、パフォーマンスのオーバーヘッドの追加は発生しません。

生成されるコードでは、シグネチャ行の先頭に Partial キーワードを配置することで、部分メソッドの定義をマークします。

Visual Basic
Partial Private Sub QuantityChanged()
End Sub

この定義は、次の条件を満たす必要があります。

  • メソッドは、Function ではなく、Sub である必要があります。

  • メソッドの本体は、空のままにする必要があります。

  • アクセス修飾子は、Private にする必要があります。

実装は、主に、部分メソッドの本体に入力することで構成されます。実装は、通常は定義から分離した部分クラスであり、生成されるコードを拡張する開発者によって記述されます。

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

上の例では、宣言内のシグネチャを正確に複製しますが、他の指定も可能です。具体的には、OverloadsOverrides などの修飾子を追加できます。Overrides 修飾子は 1 つだけ使用できます。メソッドの修飾子の詳細については、「Sub ステートメント (Visual Basic)」を参照してください。

部分メソッドは、他の Sub プロシージャと同じように呼び出します。メソッドが実装されている場合は、引数が評価され、メソッドの本体が実行されます。ただし、部分メソッドの実装は省略可能です。メソッドが実装されない場合、メソッドに対する呼び出しは無効であり、メソッドに引数として渡された式は評価されません。

Product.Designer.vb という名前のファイルに、Quantity プロパティがある Product クラスを定義します。

Visual Basic
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 の実装を用意します。

Visual Basic
Partial Class Product

    Private Sub QuantityChanged()
        MsgBox("Quantity was changed to " & Me.Quantity)
    End Sub

End Class

最後に、プロジェクトの Main メソッド内で Product インスタンスを宣言し、Quantity プロパティの初期値を指定します。

Visual Basic
Module Module1

    Sub Main()
        Dim product1 As New Product With {.Quantity = 100}
    End Sub

End Module

次のメッセージを表示するメッセージ ボックスが表示されます。

Quantity was changed to 100

コミュニティ コンテンツ   コミュニティ コンテンツとは
新しいコンテンツの追加 RSS  注釈
Processing
© 2009 Microsoft Corporation. All rights reserved. 使用条件  |  商標  |  プライバシー
Page view tracker