メソッド オーバーロード

.NET では、特定のクラスまたはインターフェイスで同名のメソッドを複数使用することが許容されています(よく行われている慣例です)。これらのメソッドは、それぞれが持つシグネチャで区別します。メソッドのシグネチャは以下によって決まります。


COBOL または他の言語で記述されたコードが何らかのクラスまたはインターフェイスのメソッドを呼び出そうとしたときに、指定された名前のメソッドが複数存在する場合は、使用可能なメソッドから選択が行われます。この選択は、パラメータの数とパラメータの「最良」の型一致に基づきます(「最良」の厳密な定義は後述のとおり複雑です)。適切なシグネチャを持つメソッドが見つからない場合は、メソッドが見つからないことを示すエラーが生成されます。同名の他のどの候補メソッドよりも適切な一致を示すメソッドが存在しない場合は、一致があいまいであることを示すエラーが生成されます。

RETURNING 項目の型はメソッドのシグネチャの一部ですが、呼び出すメソッドの選択基準として RETURNING の型が使用されることはありません。実際には、.NET ではクラスに戻り型だけが異なる複数のメソッドが存在していても許容されますが、このような状況は一般に好ましくなく、COBOL では単一のクラス内にこのようなメソッドが複数見つかった場合、エラーが生成されます。COBOL プログラムでこのように複数のメソッドが生じるのは、明示的および暗黙的な演算子を使用した場合のみです。「Operator-ID パラグラフ」を参照してください。

関連リファレンス
Operator-ID パラグラフ