今回はC#のラムダ式について記載していきます。多少仕事のほうでも使ったりするので基本のおさらいです。
LINQ文をラムダ式で記述した場合
まずはVisualStudioで「lambda_expressions_sample」という名前のコンソールアプリケーションを作成しておきます。名前は任意です。
次にProgram.csの中身を以下のように変更して保存します。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
using System; using System.Linq; namespace lambda_expressions_sample { class Program { static void Main() { var dataSource = Enumerable.Range(1, 100); //13 で割って余りが 0 となるものを抽出する var query = dataSource.Where(i => i % 13 == 0); //抽出した数字を全て表示する foreach (var num in query) { Console.WriteLine(num); } } } } |
上記をビルドして実行すると以下のコンソールが表示され、余りが0となる数値が表示されたことを確認します。
上記をラムダ式で記述しない場合はメソッドを用意して戻り値を受け取る方法ことになるかと思いますが、このようにラムダ式で書くとシンプルに記述することができます。
イベントハンドラをラムダ式で記述した場合
イベントハンドラもラムダ式で記述することができます。次は「lambda_expressions_event_sample」という名前のWindowsフォームを用意しておきます。
以下のようにボタンを一つ配置します。
まずはラムダ式を使わないでイベントハンドラを登録してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
using System; using System.Windows.Forms; namespace lambda_expressions_event_sample { public partial class Form1 : Form { public Form1() { InitializeComponent(); //ラムダ式を使わない場合 this.button1.Click += new System.EventHandler(this.button1_Click); } //ラムダ式を使わない場合 private void button1_Click(object sender, EventArgs e) { string msg = String.Format("普通のイベントハンドラです。"); MessageBox.Show(msg); } } } |
上記のようにイベントハンドラのメソッドを用意してボタン1のクリックに紐づけています。
実行すると以下のフォームが表示されます。
ボタンを押下すると以下のように表示されます。
上記の処理を今度はラムダ式で記述してみます。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
using System; using System.Windows.Forms; namespace lambda_expressions_event_sample { public partial class Form1 : Form { public Form1() { InitializeComponent(); //ラムダ式で記述した場合 button1.Click += (sender, e) => { string msg = String.Format("ラムダ式の処理です。"); MessageBox.Show(msg); }; } } } |
ラムダ式で記載するとイベントハンドラのメソッドを用意しなくてもシンプルに記述することができます。こちらを実行してボタンを押下すると以下のように表示されます。
このように、ラムダ式を利用すると同じ処理をよりシンプルに記述することができます。
参考記事
こちらの記事を参考にさせていただきました。
以上、今回はC#のラムダ式について簡単におさらいしてみました。
コメントを残す