Overloads (Visual Basic)Overloads (Visual Basic)

プロパティまたはプロシージャが、同じ名前の 1 つ以上の既存のプロパティまたはプロシージャを再度宣言することを示します。Specifies that a property or procedure redeclares one or more existing properties or procedures with the same name.

コメントRemarks

オーバーロードとは、特定のプロパティまたはプロシージャ名に対して、同じスコープ内で複数の定義を指定することです。Overloading is the practice of supplying more than one definition for a given property or procedure name in the same scope. 異なるシグネチャを持つプロパティまたはプロシージャの再宣言は、シグネチャによる隠ぺいと呼ばれることもあります。Redeclaring a property or procedure with a different signature is sometimes called hiding by signature.

ルールRules

  • 宣言コンテキスト。Declaration Context. Overloads は、プロパティまたはプロシージャの宣言ステートメントでのみ使用できます。You can use Overloads only in a property or procedure declaration statement.

  • 結合された修飾子。Combined Modifiers. 同じプロシージャ宣言で、Overloadsシャドウと共に指定することはできません。You cannot specify Overloads together with Shadows in the same procedure declaration.

  • 必要な相違点。Required Differences. この宣言のシグネチャは、オーバーロードされるすべてのプロパティまたはプロシージャのシグネチャとは異なる必要があります。The signature in this declaration must be different from the signature of every property or procedure that it overloads. シグネチャは、プロパティまたはプロシージャの名前と以下の項目で構成されます。The signature comprises the property or procedure name together with the following:

    • パラメーターの数the number of parameters

    • パラメーターの順序the order of the parameters

    • パラメーターのデータ型the data types of the parameters

    • 型パラメーターの数 (ジェネリック プロシージャの場合)the number of type parameters (for a generic procedure)

    • 戻り値の型 (変換演算子プロシージャの場合のみ)the return type (only for a conversion operator procedure)

    すべてのオーバーロードを同じ名前にする必要はありますが、各オーバーロードは、前の項目の 1 つ以上において他のすべてのオーバーロードと異なっている必要があります。All overloads must have the same name, but each must differ from all the others in one or more of the preceding respects. これにより、コンパイラは、コードでプロパティまたはプロシージャが呼び出すときに使用するバージョンを区別できます。This allows the compiler to distinguish which version to use when code calls the property or procedure.

  • 禁止されている相違点。Disallowed Differences. 以下の項目はシグネチャに含まれないため、これらの項目の 1 つ以上を変更しても、プロパティまたはプロシージャのオーバーロードには有効ではありません。Changing one or more of the following is not valid for overloading a property or procedure, because they are not part of the signature:

    • 値を返すかどうか (プロシージャの場合)whether or not it returns a value (for a procedure)

    • 戻り値のデータ型 (変換演算子を除く)the data type of the return value (except for a conversion operator)

    • パラメーターまたは型パラメーターの名前the names of the parameters or type parameters

    • 型パラメーターに対する制約 (ジェネリック プロシージャの場合)the constraints on the type parameters (for a generic procedure)

    • パラメーター修飾子キーワード (ByRefOptional など)parameter modifier keywords (such as ByRef or Optional)

    • プロパティまたはプロシージャ修飾子キーワード (PublicShared など)property or procedure modifier keywords (such as Public or Shared)

  • 省略可能な修飾子。Optional Modifier. 同じクラスで複数のオーバーロードされたプロパティまたはプロシージャを定義する場合は、Overloads 修飾子を使用する必要はありません。You do not have to use the Overloads modifier when you are defining multiple overloaded properties or procedures in the same class. ただし、宣言の 1 つで Overloads を使用した場合は、すべての宣言で Overloads を使用する必要があります。However, if you use Overloads in one of the declarations, you must use it in all of them.

  • シャドウとオーバーロード。Shadowing and Overloading. Overloads を使用して、基底クラスの既存のメンバー、またはオーバーロードされたメンバーのセットをシャドウすることもできます。Overloads can also be used to shadow an existing member, or set of overloaded members, in a base class. この方法で Overloads を使用する場合は、基底クラスのメンバーと同じ名前とパラメーター リストを使用してプロパティまたはメソッドを宣言し、Shadows キーワードは指定しません。When you use Overloads in this way, you declare the property or method with the same name and the same parameter list as the base class member, and you do not supply the Shadows keyword.

Overrides を使用する場合は、ライブラリ API と C# が連携しやすくなるように、コンパイラが暗黙的に Overloads を追加します。If you use Overrides, the compiler implicitly adds Overloads so that your library APIs work with C# more easily.

Overloads 修飾子は、次のコンテキストで使用できます。The Overloads modifier can be used in these contexts:

参照See also