更新 : 2007 年 11 月
このレッスンでは、メソッドの複数バージョンをクラスに追加する方法について説明します。
前のレッスンでは、メソッドを Persons クラスに追加する方法について説明しました。単一のメソッドでは不十分な場合もあります。たとえば、さまざまな状況で異なるデータ型をメソッドに渡す必要がある場合や、結果として別の形式を返す場合などです。
オーバーロードと呼ばれる技法を使用して、複数のバージョンのメソッドを作成できます。1 つのクラスに、名前が同じで引数のセットが異なる複数のメソッドがある場合、メソッドはオーバーロードされます。
オーバーロード
オーバーロードされたメソッドを作成するには、2 つ以上の Sub プロシージャまたは Function プロシージャをクラスに追加して、それぞれに同じ名前を付けます。プロシージャ宣言では、各プロシージャの引数のセットが異なっている必要があります。引数のセットが同じ場合、エラーが発生します。
2 つのオーバーロードがあるメソッドを次に示します。一方は String、もう一方は Integer を引数として使用します。
Public Sub TestFunction(ByVal input As String)
MsgBox(input)
End Sub
Public Sub TestFunction(ByVal input As Integer)
MsgBox(CStr(input))
End Sub
このメソッドをコードから呼び出して文字列を渡すと、1 つ目のオーバーロードが実行され、メッセージ ボックスに文字列が表示されます。メソッドに数値を渡すと、2 つ目のオーバーロードが実行され、数値が文字列に変換された後、メッセージ ボックスに表示されます。
必要な数だけオーバーロードを作成して、各オーバーロードに異なる数の引数を含めることができます。
Persons クラスで、任意の人のミドル ネームの頭文字を返すには、2 つのオーバーロードがあるメソッドを追加します。一方のオーバーロードは頭文字のみ、もう一方は頭文字の後にピリオドが付きます。
やってみよう
オーバーロードされたメソッドを作成するには
前のレッスンで作成した Persons プロジェクトを開きます。プロジェクトを保存しなかった場合は、前のレッスン「クラスへのメソッドの追加」に戻り、手順を完了します。
ソリューション エクスプローラの Persons.vb をクリックし、[表示] メニューの [コード] をクリックします。
既存のメソッドの下に次のコードを追加します。
Public Function MiddleInitial() As String MiddleInitial = Left$(middleNameValue, 1) End Function Public Function MiddleInitial(ByVal period As Boolean) As String MiddleInitial = Left$(middleNameValue, 1) & "." End Function
[ファイル] メニューの [すべてを保存] をクリックして変更を保存します。
次の手順
このレッスンでは、オーバーロードされたメソッドを作成する方法について説明しました。次のレッスンでは、クラスにイベントを追加する方法を説明します。
次のレッスン : 「クラスへのイベントの追加」