C#
 Computer >> コンピューター >  >> プログラミング >> C#

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


メソッドのオーバーロードを使用すると、同じスコープ内の同じ関数名に対して複数の定義を持つことができます。関数の定義は、引数リスト内の引数のタイプや数によって互いに異なる必要があります。

例を見てみましょう。この場合、呼び出しは単一のパラメーターを持つメソッドに移動します-

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つの引数が必要になるのに対し、最初のmethidではデフォルトで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);
   }
}

  1. 関数を関数およびメソッドとして呼び出す方法は?

    以下は、関数を関数およびメソッドとして呼び出すためのコードです- 例 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Document</title> <style>  

  2. Pythonのメソッドと関数の違い

    機能 関数は、特定のタスクを実行するためのコードのブロックであり、独自のスコープを含み、名前で呼び出されます。すべての関数には、ゼロ(no)引数または複数の引数を含めることができます。終了時に、関数は1つ以上の値を返すことができる場合とできない場合があります。 基本的な関数構文 def functionName( arg1, arg2,….):    …….    # Function_body    …….. 独自の(ユーザー)、sum(ユーザーは任意の名前を