Funcデリゲートの基本的な構文は以下の通りです:
Func<引数の型, 戻り値の型> デリゲート名 = メソッド名;
例えば、整数を受け取ってその2倍の値を返すメソッドをFuncデリゲートで表現する場合、以下のようになります:
Func<int, int> multiplyByTwo = MultiplyByTwo;
int result = multiplyByTwo(5); // 結果: 10
int MultiplyByTwo(int number)
{
return number * 2;
}
このように、Funcデリゲートを使用することで、メソッドを変数として扱い、他のメソッドに渡すことができます。
また、Funcデリゲートは複数の引数を受け取ることもできます。例えば、2つの整数を受け取り、その合計値を返すメソッドをFuncデリゲートで表現する場合、以下のようになります:
Func<int, int, int> addNumbers = AddNumbers;
int sum = addNumbers(3, 5); // 結果: 8
int AddNumbers(int number1, int number2)
{
return number1 + number2;
}
さらに、Funcデリゲートは戻り値の型がvoidではないメソッドを表現することもできます。例えば、整数を受け取り、その2倍の値を出力するメソッドをFuncデリゲートで表現する場合、以下のようになります:
Func<int, string> printDouble = PrintDouble;
string message = printDouble(7); // 結果: "14"
string PrintDouble(int number)
{
int doubledValue = number * 2;
Console.WriteLine(doubledValue);
return doubledValue.ToString();
}
以上のように、Funcデリゲートを使用することで、柔軟なメソッドの扱いや、コードの再利用性を向上させることができます。