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

更新 : 2007 年 11 月

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

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

hst1kf25.alert_note(ja-jp,VS.90).gifVisual 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 フォーム コントロールのプロパティ