コントロールにメソッドを実装する方法は、他のコンポーネントにメソッドを実装する場合と同じです。
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 Object ではなく As Widget と宣言します。 Visual Basic では、既定の設定である Option Strict によって、この規則が自動的に適用されます。
型付き引数を使用することで、開発者によるエラーの多くを実行時ではなくコンパイル時に検出できます。 コンパイラは常にエラーを検出しますが、実行時のテストはテスト用スイートと同程度の精度しか持ちません。
オーバーロードされたメソッド
コントロールのユーザーがメソッドに異なる組み合わせのパラメーターを指定できるようにする場合は、明示的なデータ型を使用して、メソッドの複数のオーバーロードを提供します。 任意のデータ型を含むことができる As Object としてパラメーターを宣言することは避けてください。このようなパラメーターを作成すると、テスト時にエラーが検出されない場合があります。
![]() |
---|
共通言語ランタイムの汎用データ型は、Variant ではなく Object です。 Variant は言語から削除されています。 詳細については 汎用データ型の変更点 (Visual Basic 6.0 ユーザー向け) および 汎用データ型の変更点 (Visual Basic 6.0 ユーザー向け). |
次の例では、Widget という仮想のコントロールに Spin メソッドがあり、スピンの方向と速度を直接指定するか、角運動量を吸収する他の 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.
}