次の方法で共有


カスタム コントロールへのメソッドの実装

コントロールにメソッドを実装する方法は、他のコンポーネントにメソッドを実装する場合と同じです。

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 としてパラメーターを宣言することは避けてください。このようなパラメーターを作成すると、テスト時にエラーが検出されない場合があります。

Visual Basic メモVisual Basic メモ

共通言語ランタイムの汎用データ型は、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.
}

参照

概念

イベントとデリゲート

その他の技術情報

Windows フォーム コントロールのプロパティ