MENU

C# FuncとActionの違いと使用例

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#プログラミングの様々な場面で活躍します。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次