C#プログラミングにおいて、デリゲートは非常に重要な概念です。その中でも特によく使われるのが「Func」と「Action」です。これらは.NETフレームワークに組み込まれた汎用デリゲートで、コードの簡潔さと再利用性を高めるのに役立ちます。本記事では、FuncとActionの違いを解説し、実際の使用例を通じてその活用方法を紹介します。
目次
FuncとActionの基本的な違い
FuncとActionは両方ともデリゲートですが、主な違いは戻り値の有無にあります。
- Func: 戻り値を持つメソッドを表します。
- Action: 戻り値を持たないメソッドを表します。
つまり、Funcは何かを計算して結果を返す処理に使用され、Actionは単に処理を実行するだけの場合に使用されます。
Funcの使用例
Funcは1つ以上の入力パラメータと1つの戻り値を持つメソッドを表現します。以下は、二つの整数を受け取り、その和を返すFuncの例です。
Func<int, int, int> add = (a, b) => a + b;
int result = add(5, 3); // result は 8
Console.WriteLine($"5 + 3 = {result}");
この例では、Func<int, int, int>
は「2つのint型の引数を受け取り、int型の値を返す関数」を意味します。
Actionの使用例
Actionは戻り値を持たないメソッドを表現します。以下は、文字列を受け取ってコンソールに出力するActionの例です。
Action<string> printMessage = message => Console.WriteLine(message);
printMessage("Hello, C# World!"); // コンソールに "Hello, C# World!" と出力されます
この例では、Action<string>
は「string型の引数を1つ受け取り、何も返さない処理」を意味します。
FuncとActionを適切に使い分けることで、コードの可読性と再利用性を向上させることができます。これらの汎用デリゲートは、LINQやイベントハンドリングなど、C#プログラミングの様々な場面で活躍します。
コメント