Linq

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

C#を学ぶならガチで読んで欲しい本はこちら


今回のテーマ

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

今回は、下記のテーマについて書いていきます。

今回のテーマ

ラムダ式について

今回はラムダ式について、理解するためにデリゲートの解説をしていこうと思います。

今までLinqのメソッドや使い方について、解説してきました。

Linqの書き方は今回紹介するデリゲートを省略した書き方なのです。

なので、今回の記事のソースコードは覚える必要はなく、元はこんな書き方だったんだなーって感覚でいいです。しかし、デリゲートを使うことによるメリットは解説するので、そこだけは覚えてください。

今回の記事を順番にみていくことで、Linqの理解にもきっとつながるとおもうので、紹介していきたいと思います。

CHECK

C# Linqはとても便利なので使い方を覚えよう。Selectメソッド、Whereメソッドを解説します。

C#を学ぶならガチで読んで欲しい本はこちら 今回のテーマContents1 今回のテーマ2 Linqを使用する場面3 Linqメソッドの解説の流れ4 Selectメソッドの使い方5 Whereメソッド ...

続きを見る

早速デリゲートについて解説していくよ!
KappaChan

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

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

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

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

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

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

C#やるならこの参考書は絶対読んでいてほしい!

デリゲートを使わない例

まず、以下のソースコードを見てください。

指定した数の個数を返すメソッド

 result
4

上記のメソッドはCalcクラスに定義されており、配列の中から偶数の個数を返すメソッドです。

このメソッドでは、別の条件でカウントを行いたい場合には利用することができません。例えば、奇数の要素の個数などです。

上記のようなことをデリゲートを使用すれば実現できます。

デリゲートを使ってみよう

早速デリゲートを使用してみましょう。

デリゲートを使う例

 result
4

デリゲートを使う例のポイントは下記の3つです。

24行目:デリゲートの宣言

11行目:デリゲートの変数に関数を代入している

30行目:代入した関数の結果で判定する

まず、デリゲートの宣言方法は24行目のように記述すればできます。ここで重要なのは、引数の型と戻り値の型です。

11行目のように代入できる関数は引数の型と戻り値の型が一致してれば大丈夫です。今回の場合では、引数はint型、戻り値の型はbool型ですね。

30行目では、デリゲートで宣言した変数の引数をint型で指定してあげれば、bool型で結果を返してくれます。

デリゲートを使用すれば、奇数の個数が欲しい場合でも、別に関数を作って代入すれば

呼び出される側の関数を変更することなく、実現することができます。

下記に偶数と奇数の個数を呼び出すソースコードを書いていきます。

デリゲートを使う例

 result
4
6

偶数の要素の数と奇数の要素の数それぞれ返して出力していますね。

KappaChan
呼び出される側のメソッドを変更しないで実現できるよ!

まとめ

今回はデリゲートについて学びました。

デリゲートのメリットについてはこの記事を見直して頂ければ、すぐに分かるとおもうので、何回も読み直してください。

次の記事では、デリゲートの書き方をもっと簡潔に書き、ラムダ式の形にしていきます。

今回の記事は以上です。最後まで見て頂きありがとうございました。

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

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

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

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

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

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

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

C#を学ぶならガチで読んで欲しい本はこちら


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

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


映画ドキュメンタリ版のブログはこちら
レインボーまとめサイト(映画ドキュメンタリー版)
ポケモンまとめブログはこちら
レインボーまとめサイト(ポケモン版)

-Linq

Ads Blocker Image Powered by Code Help Pro

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

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

Powered By
Best Wordpress Adblock Detecting Plugin | CHP Adblock