Csharp-methods
C#-メソッド
メソッドは、一緒にタスクを実行するステートメントのグループです。 すべてのC#プログラムには、Mainという名前のメソッドを持つクラスが少なくとも1つあります。
メソッドを使用するには、する必要があります-
- メソッドを定義する
- メソッドを呼び出す
C#でのメソッドの定義
メソッドを定義するとき、基本的にその構造の要素を宣言します。 C#でメソッドを定義するための構文は次のとおりです-
<Access Specifier> <Return Type> <Method Name>(Parameter List) {
Method Body
}
以下は、メソッドのさまざまな要素です-
- アクセス指定子-これは、変数または別のクラスのメソッドの可視性を決定します。
- 戻り値の型-メソッドは値を返す場合があります。 戻り値の型は、メソッドが返す値のデータ型です。 メソッドが値を返さない場合、戻り値の型は void です。
- メソッド名-メソッド名は一意の識別子であり、大文字と小文字が区別されます。 クラスで宣言されている他の識別子と同じにすることはできません。
- パラメータリスト-括弧で囲まれたパラメータは、メソッドとのデータの受け渡しに使用されます。 パラメータリストは、メソッドのパラメータのタイプ、順序、および数を参照します。 パラメーターはオプションです。つまり、メソッドにパラメーターを含めることはできません。
- メソッド本体-これには、必要なアクティビティを完了するために必要な一連の指示が含まれています。
例
次のコードスニペットは、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
クラスのインスタンスを使用して、他のクラスからパブリックメソッドを呼び出すこともできます。 たとえば、メソッド_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
再帰的なメソッド呼び出し
メソッドは自分自身を呼び出すことができます。 これは*再帰*と呼ばれます。 以下は、再帰関数を使用して、指定された数値の階乗を計算する例です-
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つの方法があります-
Sr.No. | Mechanism & Description |
---|---|
1 |
このメソッドは、引数の実際の値を関数の仮パラメーターにコピーします。 この場合、関数内のパラメーターを変更しても、引数には影響しません。 |
2 |
このメソッドは、引数のメモリ位置への参照を仮パラメータにコピーします。 これは、パラメーターに加えられた変更が引数に影響することを意味します。 |
3 |
このメソッドは、複数の値を返すのに役立ちます。 |