Linq

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

このブログではAffinger5を使用しています。

ブログテーマが気に入った方はコチラをクリック

まえがき

こんばんは、サルモリです。

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

今回のテーマ

ActionとFunc型について

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

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

CHECK

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

このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック まえがき こんばんは、かっぱちゃんです。 今回は下記のテーマについて解説します。 今回のテーマ 匿名メソ ...

続きを見る

Func型とAction型について解説するよ
サルモリ

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

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

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

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

ラムダ式を使用した処理

 result
4
6

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

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

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

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

サルモリ
まずはFunc型を解説するよ!

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

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

Func型にした例

 result
4
6

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

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

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

Action型とFunc型

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

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

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

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

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

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

サルモリ
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は、ラムダ式の処理が既に書かれていて、それを利用していただけです。

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

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

サルモリ
最後までみてくれてありがとう!!

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

こちらもCHECK

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

このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ 今回の記事は下記のポリモーフィズムについて解説した記事の続きです。 こちらもCHECK 前 ...

続きを見る

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

C#のLinqをさらに学びたい方へ

C#のLinqを理解して頂くために参考書を執筆致しました!

Linqの演習問題はこちらの参考書に載せているので、問題を解いて理解を深めたい方はこちらの参考書チェックしてください!

下記の画像をクリック!!kindleunlimitedの会員であれば無料で見れます!

⇩初心者向け      ⇩中級者向け

C#でChatGPTAPIを使ってブログ作成を自動化しませんか?

-Linq

Ads Blocker Image Powered by Code Help Pro

広告ブロックを検出しました。

ブラウザの広告機能を使用して広告をブロックしていることが検出されました。
ブラウザの広告ブロッカーを無効にし、「更新」をクリックしてください。

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock