カテゴリ: C# 更新日: 2025/12/16

C#のActionとFuncデリゲートの基本と活用例を初心者向けに完全解説

C#のActionとFuncデリゲートの基本と活用例を紹介
C#のActionとFuncデリゲートの基本と活用例を紹介

先生と生徒の会話形式で理解しよう

生徒

「C#の勉強をしていたら、ActionとかFuncって言葉が出てきました。これは何ですか?」

先生

「ActionとFuncは、C#に用意されている特別なデリゲートです。メソッドを変数のように扱うための仕組みですよ。」

生徒

「メソッドを変数みたいに扱うって、どういうことですか?」

先生

「難しく聞こえますが大丈夫です。身近な例えを使いながら、ActionとFuncの基本からゆっくり説明していきましょう。」

1. デリゲートとは何かを超かんたんに理解しよう

1. デリゲートとは何かを超かんたんに理解しよう
1. デリゲートとは何かを超かんたんに理解しよう

C#のデリゲートとは、「メソッドを入れておける箱」のような仕組みです。 ふつう変数には数値や文字を入れますが、デリゲートには処理そのものを入れることができます。

たとえば「挨拶する処理」や「計算する処理」を、あとから呼び出せるように保存しておくイメージです。 この仕組みを使うと、プログラムが柔らかくなり、同じコードを何度も書かずにすみます。

2. Actionデリゲートとは?戻り値のない処理を表す

2. Actionデリゲートとは?戻り値のない処理を表す
2. Actionデリゲートとは?戻り値のない処理を表す

Actionデリゲートは、「何か処理をするけれど、結果を返さない」メソッドを表します。 「表示する」「ログを出す」「お知らせする」など、結果が不要な処理によく使われます。

Actionは、引数を受け取ることはできますが、最後に値を返しません。 この「返さない」という点が、初心者の方がまず覚えておく大切なポイントです。


Action showMessage = () =>
{
    Console.WriteLine("こんにちは、C#のActionです。");
};

showMessage();

上の例では、「画面に文字を表示する処理」をActionに入れています。


こんにちは、C#のActionです。

3. 引数付きActionで処理を柔軟にする

3. 引数付きActionで処理を柔軟にする
3. 引数付きActionで処理を柔軟にする

Actionは、データを受け取って処理することもできます。 これを引数と呼びます。引数とは、処理に渡す材料のことです。


Action<string> greet = name =>
{
    Console.WriteLine(name + "さん、こんにちは。");
};

greet("田中");

田中さん、こんにちは。

このようにActionを使うと、「表示する内容だけを後から変える」といった柔軟な書き方ができます。

4. Funcデリゲートとは?結果を返す処理を表す

4. Funcデリゲートとは?結果を返す処理を表す
4. Funcデリゲートとは?結果を返す処理を表す

Funcデリゲートは、Actionとは違い「処理をして、結果を返す」メソッドを表します。 計算結果を使いたいときや、判断した結果を受け取りたいときに使われます。

Funcの特徴は、最後の型が戻り値になる点です。 ここが最初は少しややこしく感じるかもしれません。


Func<int, int, int> add = (a, b) =>
{
    return a + b;
};

int result = add(3, 5);
Console.WriteLine(result);

8

5. ActionとFuncの違いをイメージで理解しよう

5. ActionとFuncの違いをイメージで理解しよう
5. ActionとFuncの違いをイメージで理解しよう

ActionとFuncの違いはとてもシンプルです。

  • Action:処理はするが、答えは返さない
  • Func:処理をして、答えを返す

電話のアナウンスのように「伝えるだけ」ならAction、 電卓のように「計算して結果を出す」ならFuncと考えると分かりやすいでしょう。

6. ラムダ式と組み合わせるとコードが短くなる

6. ラムダ式と組み合わせるとコードが短くなる
6. ラムダ式と組み合わせるとコードが短くなる

ActionやFuncは、ラムダ式と一緒に使われることが多いです。 ラムダ式とは、処理を短く書くための記法です。

難しく感じる場合は、「短く書ける書き方」と覚えておけば大丈夫です。


Action sayHello = () => Console.WriteLine("Hello");
sayHello();

Hello

7. ActionとFuncがよく使われる場面

7. ActionとFuncがよく使われる場面
7. ActionとFuncがよく使われる場面

ActionとFuncは、ボタンを押したときの処理や、データを順番に処理するときなど、 さまざまな場面で使われます。

特に「処理だけを渡したい」「計算方法を後から変えたい」といった場合に力を発揮します。 この考え方を覚えると、C#のコードが一気に読みやすくなります。

カテゴリの一覧へ
新着記事
New1
C#
C#のメモリ管理とガーベジコレクションの基礎を理解しよう
New2
C#
C#の参照型と値型の違いを初心者向けにやさしく解説!
New3
C#
C#のクエリ式とメソッド式の書き換え方を完全ガイド!LINQの2つの書き方をマスター
New4
C#
C#の戻り値にタプルを使う方法!複数の値を返すテクニック
人気記事
No.1
Java&Spring記事人気No1
C#
C#で文字列が数値か判定する方法を解説!char.IsDigitやTryParseの基本
No.2
Java&Spring記事人気No2
C#
C#のLINQでOrderByを使った並び替えを完全ガイド!初心者でもわかるソート方法
No.3
Java&Spring記事人気No3
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.4
Java&Spring記事人気No4
C#
C#のrefとoutキーワードとは?引数の参照渡しを理解しよう
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#の引数と戻り値の基本!値を受け渡し・返す仕組みを理解しよう
No.7
Java&Spring記事人気No7
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.8
Java&Spring記事人気No8
C#
C#で型を調べる方法!GetType()・typeof演算子の違いと使い方