Linq

C# ラムダ式について解説します。Func、Actionについて

まえがき

こんばんは、かっぱちゃんです。

今回は下記のテーマについて解説します。

今回のテーマ

ActionとFunc型について

Func型とAction型を覚えると、ラムダ式の代入がデリゲートを使用するよりもかなり楽になりますので、使い方を絶対に覚えましょう。

今回の記事は下記の記事の続きなので、まだ見ていない方は良ければみてください。

CHECK

C# 匿名メソッド、ラムダ式(=>)について解説します。

まえがきContents1 まえがき2 デリケートを使用した書き方3 匿名メソッドを使用した書き方4 ラムダ式を使用した書き方5 ラムダ式の省略6 色々なラムダ式を渡してみよう7 まとめ こんばんは、 ...

続きを見る

Func型とAction型について解説します。
KappaChan

他のLinqの記事についてはこちら

合わせて読みたいC# Linqを勉強するならこれだけは読んでほしいオススメの本3選 オススメの参考書

C#を勉強するためのオススメの本を紹介Contents1 C#を勉強するためのオススメの本を紹介1.1 C#の基礎を学ぶなら「やさしいC#」1.2 C#の全体像を学ぶなら「独習C#」1.3 C#をさら ...

続きを見る

デリケートの宣言について

前回の記事ではラムダ式について解説し、デリゲート型の呼び出し元を簡潔に記述することができました。

以下にソースコードを記述します。

ラムダ式を使用した処理

 result
4
6

呼び出し元はラムダ式を使用してすっきりしています。

でも、呼び出し先はどうでしょう。ラムダ式を使用する度に、デリゲートをわざわざ宣言するのはめんどくさいですよね。

そこで、今回はFunc型とAction型というものを使用します。

この例ではFunc型を使用しますが、別の例でAction型も説明するので、安心してください。

Func型にして、デリゲートの宣言を省略しよう

早速、上記のソースコードをFunc型にします。

Func型にした例

 result
4
6

18行目をみてください。Judgement型をFunc型に指定するだけです。Func型であれば、デリゲートを使用して宣言する必要もありません。

ルールとして、<>に引数と戻り値の型をそれぞれ指定してあげましょう。

今までデリゲートで宣言する必要があった型を簡単に使えるようにしたのがFunc型と思ってください。

Action型とFunc型

上記の例では、Func型を使用しましたが、Action型も同じように使います。

それぞれ下記のように使い分けます。

Action:戻り値がないラムダ式(メソッドでいうvoid型)

Func:戻り値があるラムダ式(メソッドでいうvoid型以外)

void型が返り値のメソッドだけはFunc型に入れることが出来なかったので、別にAction型というものが出来たんですね。

これからはそれぞれ簡単な例を示していきます。

Action型の使い方

今回の例では、処理の動きを理解してもらうためにラムダ式を使わない例も記述していきます。

ラムダ式を使用しない例

 result
rockman and roll
dog and cat
train and car

二つのメッセージを結合して出力するだけの簡単な処理です。

続けて、ラムダ式を使用した例を見てみましょう。

ラムダ式を使用する例

 result
rockman and roll
dog and cat
train and car

ラムダ式を使用すれば、上記のように書くことができます。String型の引数をActionに指定してあげて、出力処理をラムダ式に記述するだけです。

Action型は戻り値がないので、引数の数だけ型を指定すれば大丈夫です。

Func型の使い方

続けて、Func型の使い方を見てみましょう。Actionで説明したメソッドを返り値が返るようにしたメソッドにします。

ラムダ式を使用しない例

 result
rockman and roll
dog and cat
train and car

二つの引数を結合して返すだけの簡単なメソッドですね。

続けて、ラムダ式を使用した例を見てみましょう。

ラムダ式を使用する例

 result
rockman and roll
dog and cat
train and car

ラムダ式を使用すると、上記のようなソースコードとなります。Func型は返り値の型も指定してあげることを忘れないようにしましょう。

今回の場合は二つのString型の引数と戻り値のString型を合わせて、3つのString型を指定しています。

まとめ

今回の記事では、ラムダ式を使用する上で、Action型とFunc型を使用する方法を紹介しました。

これらのメソッドを使えるようにすると、ラムダ式を自由自在に使うことができるので、覚えておきましょう。

因みにラムダ式を使う場面とメソッドを使う場面は下記のように考えて頂ければいいと思います。

ラムダ式を使用する場面:メソッド内で行う処理が簡単な場合

この処理をわざわざメソッドにする必要ないなと思ったら、ラムダ式を使っていきましょう。

因みにLinqは、ラムダ式の処理が既に書かれていて、それを利用していただけです。

今回の記事は以上です。ラムダ式どんどん使用して、知識を吸収してくださいね。

最後まで見て頂き有難うございました。

KappaChan
最後までみてくれてありがとう!!

Actionを使用した記事を書きました。下記の記事もぜひみてください。

こちらもCHECK

C# Linq Func、Actionメソッドなどのラムダ式を使用して、If文を削減しよう! ラムダ式を使用してポリモーフィズムを実装しよう!!

今回のテーマContents1 今回のテーマ1.1 ラムダ式を使用しない場合1.2 ラムダ式を保持するクラスを作成1.3 呼び出し元のソースコード1.4 まとめ 抽象クラスとラムダ式のどちらを使うべき ...

続きを見る

他のLinqの記事についてはこちら

プログラミングを一人で独学をするならプロからオンラインで教えてもらいましょう!10倍効率いいです!!

数多くあるプログラミング教室の中で2つのオンライン教室を厳選しました!どちら共、エンジニアとしての就職までサポートしてくれる本当にオススメの教室です。個別相談は完全無料です!!

カウンセリングは完全無料!未経験でITエンジニアを目指したい方にオススメ!

Webエンジニアになりたい方にオススメ!個別相談は無料!

KappaChan
オンラインのプログラミング教室は本当にオススメかっぱ!!

新しいサイト作りました。アニメのまとめサイトです。

レインボーリアルタイムTwitter(アニメ版)

レインボーリアルタイムTwitter(映画版)

-Linq

X