カスタム コントロールへのメソッドの実装
コントロールにメソッドを実装する方法は、他のコンポーネントにメソッドを実装する場合と同じです。
Visual Basic では、値を返す必要のあるメソッドは Public Function
として実装されます。 値が返されない場合は、Public Sub
として実装されます。 メソッドは次の構文で宣言します。
Public Function ConvertMatterToEnergy(Matter as Integer) As Integer
' Conversion code goes here.
End Function
関数は値を返すため、整数、文字列、オブジェクトなど、戻り値の型を指定する必要があります。 Function
プロシージャや Sub
プロシージャが引数をとる場合は、引数も指定する必要があります。
Visual Basic とは異なり、C# では関数とプロシージャが区別されません。 メソッドは値を返すか、または void
を返します。 C# のパブリック メソッドを宣言する構文は次のとおりです。
public int ConvertMatterToEnergy(int matter)
{
// Conversion code goes here.
}
メソッドを宣言する際、可能な限り、メソッドのすべての引数を明示的なデータ型として宣言します。 オブジェクト参照を使用する引数は、特定のクラス型として宣言される必要があります (例: As Widget
ではなく、As Object
)。 Visual Basic では、既定の設定 Option Strict
によって自動的にこの規則が適用されます。
型付き引数を使用することにより、開発者によるエラーの多くを、実行時ではなく、コンパイラによって検出できます。 コンパイラは常に多くのエラーを検出するのに対し、ランタイム テストは、テスト スイートと同程度の精度しかありません。
オーバーロードされたメソッド
コントロールのユーザーが、メソッドにさまざまなパラメーターの組み合わせを指定できるようにするには、明示的なデータ型を使用して、メソッドのオーバーロードを複数提供します。 テスト時にエラーが検出されない場合があるため、任意のデータ型を含めることのできる As Object
として宣言するパラメーターは作成しないでください。
注意
共通言語ランタイムの汎用データ型は、Object
ではなく、Variant
です。 Variant
は、言語から削除されました。
たとえば、Spin
という仮想のコントロールに Widget
メソッドがあり、スピンの方向と速度を直接指定するか、角運動量を吸収する他の Widget
オブジェクトを指定できます。
Overloads Public Sub Spin( _
ByVal SpinDirection As SpinDirectionsEnum, _
ByVal RevolutionsPerSecond As Double)
' Implementation code here.
End Sub
Overloads Public Sub Spin(ByVal Driver As Widget) _
' Implementation code here.
End Sub
public void Spin(SpinDirectionsEnum spinDirection, double revolutionsPerSecond)
{
// Implementation code here.
}
public void Spin(Widget driver)
{
// Implementation code here.
}
関連項目
.NET Desktop feedback