カスタム コントロールへのメソッドの実装Method Implementation in Custom Controls

コントロールにメソッドを実装する方法は、他のコンポーネントにメソッドを実装する場合と同じです。A method is implemented in a control in the same manner a method would be implemented in any other component.

Visual Basic では、値を返す必要のあるメソッドは Public Function として実装されます。In Visual Basic, if a method is required to return a value, it is implemented as a Public Function. 値が返されない場合は、Public Sub として実装されます。If no value is returned, it is implemented as a Public Sub. メソッドは次の構文で宣言します。Methods are declared using the following syntax:

Public Function ConvertMatterToEnergy(Matter as Integer) As Integer  
   ' Conversion code goes here.  
End Function  

関数は値を返すため、整数、文字列、オブジェクトなど、戻り値の型を指定する必要があります。Because functions return a value, they must specify a return type, such as integer, string, object, and so on. Function プロシージャや Sub プロシージャが引数をとる場合は、引数も指定する必要があります。The arguments Function or Sub procedures take, if any, must also be specified.

Visual Basic とは異なり、C# では関数とプロシージャが区別されません。C# makes no distinction between functions and procedures, as Visual Basic does. メソッドは値を返すか、または void を返します。A method either returns a value or returns void. C# のパブリック メソッドを宣言する構文は次のとおりです。The syntax for declaring a C# public method is:

public int ConvertMatterToEnergy(int matter)  
{  
   // Conversion code goes here.  
}  

メソッドを宣言する際、可能な限り、メソッドのすべての引数を明示的なデータ型として宣言します。When you declare a method, declare all of its arguments as explicit data types whenever possible. オブジェクト参照を使用する引数は、特定のクラス型として宣言される必要があります (例: As Widget ではなく、As Object)。Arguments that take object references should be declared as specific class types — for example, As Widget instead of As Object. Visual Basic では、既定の設定 Option Strict によって自動的にこの規則が適用されます。In Visual Basic, the default setting Option Strict automatically enforces this rule.

型付き引数を使用することにより、開発者によるエラーの多くを、実行時ではなく、コンパイラによって検出できます。Typed arguments allow many developer errors to be caught by the compiler, rather than at run time. コンパイラは常に多くのエラーを検出するのに対し、ランタイム テストは、テスト スイートと同程度の精度しかありません。The compiler always catches errors, whereas run-time testing is only as good as the test suite.

オーバーロードされたメソッドOverloaded Methods

コントロールのユーザーが、メソッドにさまざまなパラメーターの組み合わせを指定できるようにするには、明示的なデータ型を使用して、メソッドのオーバーロードを複数提供します。If you want to allow users of your control to supply different combinations of parameters to a method, provide multiple overloads of the method, using explicit data types. テスト時にエラーが検出されない場合があるため、任意のデータ型を含めることのできる As Object として宣言するパラメーターは作成しないでください。Avoid creating parameters declared As Object that can contain any data type, as this can lead to errors that might not be caught in testing.

注意

共通言語ランタイムの汎用データ型は、Object ではなく、Variant です。The universal data type in the common language runtime is Object rather than Variant. Variant は、言語から削除されました。Variant has been removed from the language.

たとえば、Spin という仮想のコントロールに Widget メソッドがあり、スピンの方向と速度を直接指定するか、角運動量を吸収する他の Widget オブジェクトを指定できます。For example, the Spin method of a hypothetical Widget control might allow either direct specification of spin direction and speed, or specification of another Widget object from which angular momentum is to be absorbed:

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.  
}  

関連項目See also