.net でのオーバーロードとは、同じクラス内に同じ名前のメソッドが複数存在しますが、これらのメソッドのパラメーター リストと戻り値の型が異なることを意味します。オーバーロードの概念はオブジェクト指向プログラミングの範囲内ではないことに注意してください。コンパイラーの観点から見ると、パラメーター リストと戻り値の型が異なると、メソッド名も異なります。つまり、メソッドのアドレスはコンパイル時に決定され、静的バインディングになります。
例から、次のようなオーバーロードの基本的な特性を要約します。
オーバーロードは同じクラス内に存在します。
オーバーロードされたメソッドには、同じメソッド名、異なるパラメーター リストが必要で、戻り値の型は同じでも異なってもかまいません (戻り値のオーバーロードは暗黙的な演算子を使用してある程度実現できますが、お勧めできません)。 。
.NET 2.0 では汎用テクノロジが導入されているため、同じパラメータ リストと同じ戻り値の型でもオーバーロードを構成できます。
オーバーロードとは、複数の関数の名前はまったく同じですが、パラメーターの型や番号が異なることを意味します。実際の呼び出しはパラメーターの型によって区別されます。
たとえば、現在 2 つの Max 関数があるとします
1)
int Max(int i,int j) { }
2)
float Max(float i,float j) { }
プログラム内で
int i,j,k; k=Max(i,j);//将调用第一个Max float x,y,z; z=Max(x,y);//将调用第二个Max
明らかにオーバーロードにもポリモーフィズムがありますが、この種のポリモーフィズムはは、元のコード レベルのポリモーフィズムに基づいています。上記 2 つの Max 関数は、テキスト内では同じ名前ですが、コンパイル後の内部名は異なります。パラメータの型などの情報を追加する必要があります。このプロセスは、名前コンパイルと呼ばれます。 Max を呼び出すソース コードをコンパイルするとき、コンパイラは、
で呼び出すときのパラメータに基づいて、正しい Max 関数を呼び出すことを選択します。以上が.net のオーバーロードとは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。