C#-メソッド
メソッドは、一緒にタスクを実行するステートメントのグループです。すべてのC#プログラムには、Mainという名前のメソッドを持つクラスが少なくとも1つあります。
メソッドを使用するには、次のことを行う必要があります。
- メソッドを定義する
 - メソッドを呼び出す
 
C#でのメソッドの定義
メソッドを定義するときは、基本的にその構造の要素を宣言します。C#でメソッドを定義するための構文は次のとおりです-
<Access Specifier> <Return Type> <Method Name>(Parameter List) {
   Method Body
} 
    以下は、メソッドのさまざまな要素です-
Access Specifier −これは、別のクラスの変数またはメソッドの可視性を決定します。
Return type−メソッドは値を返す場合があります。戻り値の型は、メソッドが返す値のデータ型です。メソッドが値を返さない場合、戻り値の型は次のようになります。void。
Method name−メソッド名は一意の識別子であり、大文字と小文字が区別されます。クラスで宣言されている他の識別子と同じにすることはできません。
Parameter list−括弧で囲まれたパラメーターは、メソッドとの間でデータを送受信するために使用されます。パラメータリストは、メソッドのパラメータのタイプ、順序、および数を参照します。パラメータはオプションです。つまり、メソッドにパラメータを含めることはできません。
Method body −これには、必要なアクティビティを完了するために必要な一連の指示が含まれています。
例
次のコードスニペットは、2つの整数値を取り、2つのうち大きい方を返す関数FindMaxを示しています。パブリックアクセス指定子があるため、クラスのインスタンスを使用してクラスの外部からアクセスできます。
class NumberManipulator {
   public int FindMax(int num1, int num2) {
      /* local variable declaration */
      int result;
      if (num1 > num2)
         result = num1;
      else
         result = num2;
      return result;
   }
   ...
} 
    C#でメソッドを呼び出す
メソッドの名前を使用してメソッドを呼び出すことができます。次の例はこれを示しています-
using System;
namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if (num1 > num2)
            result = num1;
         else
            result = num2;
         return result;
      }
      
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();
         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
} 
    上記のコードをコンパイルして実行すると、次の結果が得られます。
Max value is : 200 
    クラスのインスタンスを使用して、他のクラスからpublicメソッドを呼び出すこともできます。たとえば、メソッドFindMaxはNumberManipulatorクラスに属しており、別のクラスTestから呼び出すことができます。
using System;
namespace CalculatorApplication {
   class NumberManipulator {
      public int FindMax(int num1, int num2) {
         /* local variable declaration */
         int result;
         
         if(num1 > num2)
            result = num1;
         else
            result = num2;
         
         return result;
      }
   }
   class Test {
      static void Main(string[] args) {
         /* local variable definition */
         int a = 100;
         int b = 200;
         int ret;
         NumberManipulator n = new NumberManipulator();
         
         //calling the FindMax method
         ret = n.FindMax(a, b);
         Console.WriteLine("Max value is : {0}", ret );
         Console.ReadLine();
      }
   }
} 
    上記のコードをコンパイルして実行すると、次の結果が得られます。
Max value is : 200 
    再帰的なメソッド呼び出し
メソッドはそれ自体を呼び出すことができます。これはとして知られていますrecursion。以下は、再帰関数を使用して特定の数の階乗を計算する例です。
using System;
namespace CalculatorApplication {
   class NumberManipulator {
      public int factorial(int num) {
         /* local variable declaration */
         int result;
         if (num == 1) {
            return 1;
         } else {
            result = factorial(num - 1) * num;
            return result;
         }
      }
      static void Main(string[] args) {
         NumberManipulator n = new NumberManipulator();
         //calling the factorial method {0}", n.factorial(6));
         Console.WriteLine("Factorial of 7 is : {0}", n.factorial(7));
         Console.WriteLine("Factorial of 8 is : {0}", n.factorial(8));
         Console.ReadLine();
      }
   }
} 
    上記のコードをコンパイルして実行すると、次の結果が得られます。
Factorial of 6 is: 720
Factorial of 7 is: 5040
Factorial of 8 is: 40320 
    メソッドへのパラメーターの受け渡し
パラメータ付きのメソッドを呼び出すときは、パラメータをメソッドに渡す必要があります。パラメータをメソッドに渡す方法は3つあります-
| シニア番号 | メカニズムと説明 | 
|---|---|
| 1 | 値パラメータ  このメソッドは、引数の実際の値を関数の仮パラメーターにコピーします。この場合、関数内のパラメーターに加えられた変更は引数に影響を与えません。  |  
      
| 2 | 参照パラメーター  このメソッドは、引数のメモリ位置への参照を仮パラメータにコピーします。これは、パラメータに加えられた変更が引数に影響を与えることを意味します。  |  
      
| 3 | 出力パラメータ  このメソッドは、複数の値を返すのに役立ちます。  |