部分メソッド (Visual Basic)
部分メソッドを使用すると、開発者はカスタム ロジックをコードに挿入できます。 通常、このコードはデザイナーによって生成されるクラスの一部です。 部分メソッドは、コード ジェネレーターによって作成された部分クラスで定義され、何かが変更されたことを通知するためによく使用されます。 部分メソッドにより、開発者は変更に対応するためのカスタム動作を指定できます。
コード ジェネレーターのデザイナーは、メソッド シグネチャとメソッドの 1 つ以上の呼び出しのみを定義します。 開発者は、生成されたコードの動作をカスタマイズする場合にメソッドの実装を提供できます。 実装が提供されていない場合、メソッドの呼び出しはコンパイラによって削除されるため、パフォーマンスの追加のオーバーヘッドは発生しません。
宣言
生成されたコードでは、シグネチャ行の先頭に Partial
キーワードを配置することによって部分メソッドの定義をマークします。
Partial Private Sub QuantityChanged()
End Sub
定義は次の条件を満たしている必要があります。
メソッドは
Function
ではなく、Sub
である必要があります。メソッドの本体は空のままにしておく必要があります。
アクセス修飾子は
Private
である必要があります。
実装
実装は、部分メソッドの本体の入力で主に構成されます。 通常、実装は定義とは別の部分クラスにあり、生成されたコードを拡張する開発者が記述します。
Private Sub QuantityChanged()
' Code for executing the desired action.
End Sub
上記の例では、宣言のシグネチャを正確に複製していますが、バリエーションが可能です。 具体的には、Overloads
や Overrides
などの他の修飾子を追加できます。 Overrides
修飾子は 1 つだけ許可されます。 メソッド修飾子の詳細については、「Sub Statement (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
関連項目
.NET