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

C#のラムダ式の戻り値と引数を柔軟に扱う方法を完全解説!初心者でもわかる基本ガイド

C#のラムダ式の戻り値と引数を柔軟に扱う方法
C#のラムダ式の戻り値と引数を柔軟に扱う方法

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

生徒

「C#のラムダ式って、引数とか戻り値があるって聞いたんですが、正直よくわかりません…」

先生

「ラムダ式は、受け取る値(引数)と、返す値(戻り値)をとても柔軟に扱えるのが特徴ですよ。」

生徒

「柔軟ってどういう意味ですか?普通のメソッドと何が違うんですか?」

先生

「では、パソコンを触ったことがない人でもイメージできるように、基礎から順番に説明していきましょう。」

1. ラムダ式とは何かを超かんたんに説明

1. ラムダ式とは何かを超かんたんに説明
1. ラムダ式とは何かを超かんたんに説明

C#のラムダ式とは、「その場で使える小さな処理」を表す書き方です。 プログラミングが初めての人は、「処理を箱に入れて、すぐ使えるようにしたもの」と考えると理解しやすくなります。

例えば、「数字を受け取って、少し計算して、結果を返す」という流れを、 わざわざ長い名前のメソッドとして作らなくても、ラムダ式なら一行で書けます。 このときに重要になるのが、引数戻り値です。

2. 引数と戻り値とは?日常生活でたとえる

2. 引数と戻り値とは?日常生活でたとえる
2. 引数と戻り値とは?日常生活でたとえる

まず言葉の説明をします。 引数(ひきすう)とは、「処理に渡す材料」です。 戻り値(もどりち)とは、「処理が終わって返ってくる結果」です。

これは自動販売機にとてもよく似ています。 お金を入れるのが引数、ボタンを押して出てくるジュースが戻り値です。 ラムダ式も同じで、何かを受け取って、何かを返す仕組みになっています。

3. 引数が1つで戻り値があるラムダ式

3. 引数が1つで戻り値があるラムダ式
3. 引数が1つで戻り値があるラムダ式

一番基本的な形は、「1つの値を受け取って、1つの結果を返す」ラムダ式です。 数字を受け取って2倍にする処理を見てみましょう。


Func<int, int> doubleNumber = x => x * 2;
int result = doubleNumber(5);
Console.WriteLine(result);

10

ここで使っているFuncは、「戻り値があるデリゲート」です。 難しく聞こえますが、「計算して結果を返す箱」くらいの理解で大丈夫です。 最初のが引数の型、最後のが戻り値の型を表しています。

4. 引数が複数あるラムダ式

4. 引数が複数あるラムダ式
4. 引数が複数あるラムダ式

ラムダ式は、引数を複数持つこともできます。 例えば、「2つの数字を受け取って足し算する」処理です。


Func<int, int, int> add = (a, b) => a + b;
int sum = add(3, 7);
Console.WriteLine(sum);

10

このように、引数が増えても書き方はほとんど変わりません。 カッコの中に材料を並べて書くだけです。 「たくさん受け取って、1つ返す」という形も簡単に作れるのが特徴です。

5. 戻り値がないラムダ式(Action)

5. 戻り値がないラムダ式(Action)
5. 戻り値がないラムダ式(Action)

ラムダ式は、必ずしも戻り値が必要なわけではありません。 「表示するだけ」「記録するだけ」など、結果を返さない処理もあります。 その場合はActionを使います。


Action<string> showMessage = message =>
{
    Console.WriteLine(message);
};

showMessage("こんにちは、C#のラムダ式!");

こんにちは、C#のラムダ式!

Actionは、「引数はあるけれど戻り値はない処理」を表します。 画面に表示する、ログを書く、といった用途でよく使われます。

6. 引数の型を省略できる理由

6. 引数の型を省略できる理由
6. 引数の型を省略できる理由

ラムダ式では、引数の型を省略できる場合があります。 これはC#が前後の情報から自動で判断してくれるためです。 この仕組みを型推論と呼びます。

型推論のおかげで、コードが短くなり、読みやすくなります。 初心者のうちは「省略できるんだな」くらいの理解で問題ありません。

7. ラムダ式を使うと何がうれしいのか

7. ラムダ式を使うと何がうれしいのか
7. ラムダ式を使うと何がうれしいのか

ラムダ式の戻り値と引数を柔軟に扱えるようになると、 処理の流れがとてもシンプルになります。 「この場で、この計算だけしたい」というときに、すぐ書けるのが最大のメリットです。

特に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
COBOL
COBOLの帳票レイアウトを美しく!可読性向上テクニックを徹底解説