次の方法で共有


Overloads (Visual Basic)

プロパティまたはプロシージャが、1 つ以上の既存のプロパティまたはプロシージャを、同じ名前で再度宣言することを指定します。

解説

オーバーロードとは、特定のプロパティ名またはプロシージャ名に対し、同じスコープ内で複数の定義を与えることをいいます。 プロパティやプロシージャを異なるシグネチャで宣言し直すことを、シグネチャによる隠ぺいと呼ぶ場合があります。

ルール

  • 宣言コンテキスト Overloads は、プロパティまたはプロシージャの宣言ステートメント内でだけ使用できます。

  • 修飾子の結合 同じプロシージャ宣言で Overloads と Shadows (Visual Basic) の両方を指定することはできません。

  • シグネチャの変更 この宣言内のシグネチャは、オーバーロードされるすべてのプロパティまたはプロシージャのシグネチャと異なっている必要があります。 シグネチャは、プロパティ名またはプロシージャ名の他に、次の要素で構成されます。

    • パラメーターの数

    • パラメーターの順序

    • パラメーターのデータ型

    • 型パラメーターの数 (ジェネリック プロシージャの場合)

    • 戻り値の型 (変換演算子のプロシージャの場合のみ)

    すべてのオーバーロードは同じ名前を持つ必要があります。ただし、各オーバーロードは、上記の 1 つ以上の要素において、他のすべてと異なっていることが必要です。 これは、コードがプロパティまたはプロシージャを呼び出すとき、コンパイラがどのバージョンを使えばよいかを区別するために必要です。

  • 許可されない変更 以下の要素を 1 つでも変更した場合、プロパティまたはプロシージャのオーバーロードは有効ではありません。以下の要素はシグニチャには含まれません。

    • 値を返すかどうか (プロシージャの場合)

    • 戻り値のデータ型 (変換演算子の場合を除く)

    • パラメーター名または型パラメーター名

    • 型パラメーターに対する制約 (ジェネリック プロシージャの場合)

    • パラメーターを修飾するキーワード (ByRef や Optional など)

    • プロパティやプロシージャを修飾するキーワード (Public や Shared など)

  • 修飾子の省略 同じクラスに複数のオーバーロード プロパティまたはオーバーロード プロシージャを定義する場合は、Overloads 修飾子を指定する必要はありません。 ただし、1 つの宣言で Overloads を使用する場合は、すべての宣言で Overloads を使用する必要があります。

  • シャドウとオーバーロード Overloads は基本クラスの既存のメンバーまたはオーバーロードされたメンバーをシャドウするためにも使用できます。 この方法で Overloads キーワードを使う場合は、基本クラスのメンバーと名前もパラメーター リストも同じプロパティまたはメソッドを宣言し、Shadows キーワードは指定しません。

修飾子 Overloads は、次の構文で使用します。

Function ステートメント

Operator ステートメント

Property ステートメント

Sub ステートメント

参照

処理手順

方法: 変換演算子を定義する (Visual Basic)

参照

Shadows (Visual Basic)

概念

プロシージャのオーバーロード (Visual Basic)

Visual Basic におけるジェネリック型 (Visual Basic)

演算子プロシージャ (Visual Basic)