Overloads (Visual Basic)
プロパティまたはプロシージャが、1 つ以上の既存のプロパティまたはプロシージャを、同じ名前で再度宣言することを指定します。
解説
オーバーロードとは、特定のプロパティ名またはプロシージャ名に対し、同じスコープ内で複数の定義を与えることをいいます。 プロパティやプロシージャを異なるシグネチャで宣言し直すことを、シグネチャによる隠ぺいと呼ぶ場合があります。
ルール
宣言コンテキスト Overloads は、プロパティまたはプロシージャの宣言ステートメント内でだけ使用できます。
修飾子の結合 同じプロシージャ宣言で Overloads と Shadows (Visual Basic) の両方を指定することはできません。
シグネチャの変更 この宣言内のシグネチャは、オーバーロードされるすべてのプロパティまたはプロシージャのシグネチャと異なっている必要があります。 シグネチャは、プロパティ名またはプロシージャ名の他に、次の要素で構成されます。
パラメーターの数
パラメーターの順序
パラメーターのデータ型
型パラメーターの数 (ジェネリック プロシージャの場合)
戻り値の型 (変換演算子のプロシージャの場合のみ)
すべてのオーバーロードは同じ名前を持つ必要があります。ただし、各オーバーロードは、上記の 1 つ以上の要素において、他のすべてと異なっていることが必要です。 これは、コードがプロパティまたはプロシージャを呼び出すとき、コンパイラがどのバージョンを使えばよいかを区別するために必要です。
許可されない変更 以下の要素を 1 つでも変更した場合、プロパティまたはプロシージャのオーバーロードは有効ではありません。以下の要素はシグニチャには含まれません。
値を返すかどうか (プロシージャの場合)
戻り値のデータ型 (変換演算子の場合を除く)
パラメーター名または型パラメーター名
型パラメーターに対する制約 (ジェネリック プロシージャの場合)
パラメーターを修飾するキーワード (ByRef や Optional など)
プロパティやプロシージャを修飾するキーワード (Public や Shared など)
修飾子の省略 同じクラスに複数のオーバーロード プロパティまたはオーバーロード プロシージャを定義する場合は、Overloads 修飾子を指定する必要はありません。 ただし、1 つの宣言で Overloads を使用する場合は、すべての宣言で Overloads を使用する必要があります。
シャドウとオーバーロード Overloads は基本クラスの既存のメンバーまたはオーバーロードされたメンバーをシャドウするためにも使用できます。 この方法で Overloads キーワードを使う場合は、基本クラスのメンバーと名前もパラメーター リストも同じプロパティまたはメソッドを宣言し、Shadows キーワードは指定しません。
修飾子 Overloads は、次の構文で使用します。