ホームページ  >  記事  >  バックエンド開発  >  C# のオーバーロードされたメソッドとあいまいさ

C# のオーバーロードされたメソッドとあいまいさ

WBOY
WBOY転載
2023-09-06 08:45:10766ブラウズ

C# 中的重载方法和歧义

メソッドのオーバーロードを使用すると、同じスコープ内に同じ関数名の複数の定義を持つことができます。関数定義は、パラメータ リスト内のパラメータのタイプや数が異なっていなければなりません。

例を見てみましょう。ここでは、呼び出しは 1 つのパラメーターを持つメソッドに進みます -

Example

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 サイトの他の関連記事を参照してください。

声明:
この記事はtutorialspoint.comで複製されています。侵害がある場合は、admin@php.cn までご連絡ください。