おーみんだよ。

おーみんだよ。

プログラミング、Unityなどのアウトプットを主に行っています。

【C#】ラムダ式とは?

f:id:bookreadkun:20190627195010p:plain

おはようございます。おーみん(@Ooooooomin_365)です。

 

現在C#のお勉強中です。

今回はラムダ式について、学んだ内容をまとめていこうと思います。

 

ラムダ式とは?

ラムダ式とはC#3.0から出てきた概念の一つで、ラムダ演算子「=>」を用いたプログラムのことを言います(という風に理解しています)。

 

前回の記事「【C#】匿名メソッドとは?」にて、以下のサンプルコードを掲載しました。

f:id:bookreadkun:20190627181150p:plain

 

この17~18行目は匿名メソッドを用いているのですが、この部分をラムダ式を用いると以下のように書き換えられます。

 

---------------

ThisisDelegate thisisDelegate1 = () => { Console.WriteLine("Hello World!2");};

thisisDelegate1();

---------------

 

さて・・・

 

サッパリですよねwwww

 

() ←これはどこから出てきた!?

元々書いていた「delegate」は?

 

となるかと思います。

 

一応ですが、この書き方は正しい書き方です。

実際動きますし。

 

【サンプルプログラム】

f:id:bookreadkun:20190627200918p:plain

※17~18行目がラムダ式に変換されています。 

 

【出力結果】

f:id:bookreadkun:20190627200950p:plain

 

とはいえ、意外と単純で()は元々書いていた「delegate()」の()と同じです。

そう!「delegate」という文字が消えただけなのです。

 

今回のサンプルプログラムでは最初のdelegate宣言時にdelegateの引数を設定していない(6行目)ので「() =>~」という書き方になっていますが、もしここの引数が(int a)とかになっていたら「(a) => ~」という書き方になります。

※引数が一つの時は()を書かなくても良いのですが、今回は便宜上書いておきます。

 

上記のサンプルではラムダ式の中を匿名メソッドにしていますが、通常のようにメソッドを定義して、そのメソッドを中に入れてももちろん問題ありません。

 

ということで、以上でラムダ式の説明を終わります。

ラムダ式はC#を語る上では絶対に外せないポイントですので、しっかり理解しておきたいところです。

 

※この記事はあくまでラムダ式の超基本的な内容ですので、この記事が理解出来たらもう少し応用的な内容を取り扱っている記事や書籍等も追加で読むことをオススメ致します。