Linq

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

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

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

まえがき

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

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

今回のテーマ

匿名メソッドとラムダ式について

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

CHECK

C# ラムダ式(=>)について解説します。 まずはデリゲートについて覚えましょう。 

このブログではAffinger5を使用しています。ブログテーマが気に入った方はコチラをクリック 今回のテーマ こんばんは、サルモリです。 今回は、下記のテーマについて書いていきます。 今回のテーマ ラ ...

続きを見る

早速、匿名メソッドについて解説します。
サルモリ

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

デリケートを使用した書き方

まず、前回の記事のおさらいとしてデリケートを使用した書き方を記述します。

デリケートを使用して、奇数、偶数を判別するソースコード

 result
4
6

デリケートのJudgeに偶数の関数を代入した後、奇数の関数を代入しているソースコードです。

このソースコードのデリケートに対して、匿名メソッドを使用した書き方にしてみます。

匿名メソッドを使用した書き方

匿名メソッドとは、名前の通り名前が存在しないメソッドです。

匿名メソッドを使用することにより、上記のIsEvenやIsOddなどの関数名を指定することなく記述することができます。

早速、ソースコードを見てみましょう。

匿名メソッドを使用した書き方

 result
4
6

変更を加えたのは11行目と12行目です。中々テンションの上がる書き方になってきましたね。

二つのソースコードを見比べて頂ければ、処理自体にメソッド名っていらなくない?ってのが実感して頂けたと思います。

でも、まだdelegateという文字列を書かなければならないので、冗長に感じてしまいます。

そこで、ラムダ式を使用すればさらに短く書くことができるのです。

ラムダ式を使用した書き方

続けて、上記のソースコードをラムダ式を使用した方法で書いていきます。

ラムダ式を使用した書き方

 result
4
6

11行目、12行目をみてください。delegateがなくなり、遂に=>が現れました。=>はdelegateを表していたんですね。

右辺の部分をラムダ式といいます。一種のメソッドとして考えて頂ければいいでしょう。

ラムダ式はさらに簡潔に書くことができるので、これからは11行目と12行目に注目し、さらに簡潔に書けるようにしていきます。

サルモリ
さらに簡潔に書けるようにしていくよ!

ラムダ式の省略

ラムダ式をさらに省略していきましょう。上記の11行目と12行目のソースコードは下記です。

step
1
ラムダ式は{}とreturnを省略することができます。

step
2
ラムダ式では引数の型を省略することが可能です。

step
3
ラムダ式では引数が1つの場合は、()を外すことが可能です。

かなり簡潔にすることができましたね。Linqでも見慣れた形になりました。

最終的なソースコードは下記となります。

ラムダ式の最終的な書き方

 result
4
6

色々なラムダ式を渡してみよう

奇数と偶数以外にも色々なラムダ式を渡してみましょう。

例では下記を判別するラムダ式を渡してみます。

  • 3以上の値
  • 3以下4以上の値
  • 1が含まれている数字

色々なラムダ式

 result
4
6
4
5
2

その他にも色々と試してみてくださいね。

サルモリ
色々なラムダ式を作ってみよう!

まとめ

今回はデリゲートの書き方からラムダ式の書き方に変換していく記事でした。

ラムダ式って何?ということが少しでも解消されたと思います。全て覚える必要もないので、流れだけでも覚えてくれるといいでしょう。

次の記事はクラスCalcのdelegateの宣言を解消したい方向けの記事を書きたいと思います。

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

他の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