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

C#の匿名メソッド(delegateキーワード)をやさしく理解しよう!初心者向け完全解説

C#の匿名メソッド(delegateキーワード)を理解しよう
C#の匿名メソッド(delegateキーワード)を理解しよう

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

生徒

「C#のコードを見ていたら、delegateって書いてある不思議な書き方がありました。あれは何ですか?」

先生

「それは匿名メソッドと呼ばれる書き方です。名前を持たないメソッドを、その場で作れる仕組みなんですよ。」

生徒

「名前がないメソッドなんて、必要なんですか?」

先生

「はい。短い処理を一時的に使いたいときに、とても便利です。では、基本から順番に見ていきましょう。」

1. 匿名メソッドとは何か?

1. 匿名メソッドとは何か?
1. 匿名メソッドとは何か?

C#の匿名メソッドとは、名前を付けずに定義する特別なメソッドのことです。 通常のメソッドは名前を決めてから使いますが、匿名メソッドは「その場限りの処理」として使われます。

プログラミング初心者の方は、「名前がないと使えないのでは?」と感じるかもしれません。 しかしC#では、デリゲートという仕組みを使うことで、名前のないメソッドでも安全に扱えます。

例えるなら、匿名メソッドは「付せんに一言メモを書いて、一時的に机に貼る」ような存在です。 ノートに正式に書くほどではないけれど、今だけ使いたい情報を手軽に残せます。

2. delegateキーワードの役割

2. delegateキーワードの役割
2. delegateキーワードの役割

匿名メソッドを理解するためには、delegate(デリゲート)という言葉を知る必要があります。 デリゲートとは、「メソッドを入れておける箱」のようなものです。

普通の変数には数値や文字を入れますが、デリゲートには処理そのものを入れます。 そして、あとからその処理を実行できます。

delegateキーワードは、「ここにメソッドの処理を書きますよ」という合図になります。 匿名メソッドでは、このキーワードを使って、その場で処理内容を定義します。

3. 匿名メソッドの基本的な書き方

3. 匿名メソッドの基本的な書き方
3. 匿名メソッドの基本的な書き方

それでは、C#で匿名メソッドを使った簡単な例を見てみましょう。 ここでは「文字を表示する処理」を匿名メソッドとして定義します。


delegate void MessageDelegate();

MessageDelegate showMessage = delegate ()
{
    Console.WriteLine("こんにちは、匿名メソッドです。");
};

showMessage();

最初にdelegate void MessageDelegate();と書いています。 これは「戻り値がなく、引数もない処理を入れられる箱」を作っている状態です。

次に、delegate () { ... }の部分が匿名メソッドです。 メソッド名がなく、直接処理内容だけが書かれているのが特徴です。


こんにちは、匿名メソッドです。

4. 引数を持つ匿名メソッド

4. 引数を持つ匿名メソッド
4. 引数を持つ匿名メソッド

匿名メソッドは、引数を受け取ることもできます。 引数とは、処理を実行するときに渡す「追加の情報」のことです。

例えば、「数字を受け取って画面に表示する」処理を考えてみましょう。


delegate void NumberDelegate(int number);

NumberDelegate showNumber = delegate (int number)
{
    Console.WriteLine("受け取った数字は " + number + " です。");
};

showNumber(10);

受け取った数字は 10 です。

このように、匿名メソッドでも通常のメソッドと同じように引数を使えます。 名前がないだけで、できることはほとんど変わりません。

5. なぜ匿名メソッドを使うのか?

5. なぜ匿名メソッドを使うのか?
5. なぜ匿名メソッドを使うのか?

「普通にメソッドを作ればいいのでは?」と感じる方も多いでしょう。 匿名メソッドが役立つのは、一度しか使わない短い処理です。

何度も使う処理に名前を付けるのは大切ですが、 一回しか使わない処理まで名前を付けると、コードが読みにくくなります。

匿名メソッドを使えば、処理の内容をその場で確認でき、 「この場所専用の処理なのだ」とすぐに分かります。 これが、C#で匿名メソッドが用意されている理由です。

6. 匿名メソッドとラムダ式の関係

6. 匿名メソッドとラムダ式の関係
6. 匿名メソッドとラムダ式の関係

C#では、匿名メソッドの考え方をさらに簡単に書けるラムダ式という仕組みがあります。 ラムダ式は、匿名メソッドを短く書いた形だと考えて問題ありません。

ただし、内部的な考え方は同じでも、まずは 「delegateキーワードを使った匿名メソッド」 を理解しておくと、C#の仕組みがしっかり身につきます。

基礎を押さえることで、後から出てくる新しい書き方も、無理なく理解できるようになります。

カテゴリの一覧へ
新着記事
New1
C#
C#正規表現完全ガイド!数値チェックやメールアドレス検証の書き方
New2
Azure
Azure導入のメリット・デメリットとは?DX推進を成功させる経営層への提案術
New3
C#
C#のvarキーワードとは?暗黙的型指定の使いどころを解説
New4
COBOL
COBOLのファイル入出力のエラーと解決策まとめ!初心者向けやさしく解説
人気記事
No.1
Java&Spring記事人気No1
COBOL
COBOLのバッチ処理とは?基本構成と役割を初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
C#
C#のpartialクラスとは?初心者でも理解できるクラス分割の基本
No.3
Java&Spring記事人気No3
COBOL
COBOLのコンパイラと開発環境を徹底解説!初心者にもわかりやすい入門ガイド
No.4
Java&Spring記事人気No4
C#
C#のラムダ式の書き方と構文を初心者向けに完全解説
No.5
Java&Spring記事人気No5
COBOL
COBOLの数値データ型「PIC 9」の使い方と注意点をやさしく解説!
No.6
Java&Spring記事人気No6
C#
C#のLINQでFirstとFirstOrDefaultの違いと使い方を完全解説!初心者向けガイド
No.7
Java&Spring記事人気No7
C#
C#のasyncとawaitの基本的な使い方をマスターしよう!非同期処理をやさしく解説
No.8
Java&Spring記事人気No8
C#
C#でNewtonsoft.Jsonを使いこなす!初心者向けJSON操作とデシリアライズ完全解説