メソッドのオーバーロードを使用すると、同じスコープ内に同じ関数名の複数の定義を持つことができます。関数定義は、パラメータ リスト内のパラメータのタイプや数が異なっていなければなりません。
例を見てみましょう。ここでは、呼び出しは 1 つのパラメーターを持つメソッドに進みます -
using System; class Student { static void DisplayMarks(int marks1 = 90) { Console.WriteLine("Method with one parameter!"); } static void DisplayMarks(int marks1, int marks2 = 95) { Console.WriteLine("Method with two parameters!"); } static void Main() { DisplayMarks(97); } }
次に、あいまいな呼び出しの原因を見てみましょう。ここで混乱するのは、2 番目のメソッドではデフォルトのパラメータが 2 つ必要であるのに対し、最初のメソッドではデフォルトのパラメータが 1 つ必要であることです。これにより曖昧さが生じます。
using System; class Student { static void DisplayMarks(int marks1 = 90, int marks2 = 80) { Console.WriteLine("Method with two parameters!"); } static void DisplayMarks(int marks1, int marks2 = 80, marks3 = 98) { Console.WriteLine("Method with three parameters!"); } static void Main() { DisplayMarks(80); } }
以上がC# のオーバーロードされたメソッドとあいまいさの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。