@see C#ラムダ式 基礎文法最速マスター
もくじ
通常
public Form1() { ……省略…… button1.Click += button1_Click; } void button1_Click(object sender, EventArgs e) { MessageBox.Show("デリゲート!"); }匿名メソッド
public Form1() { ……省略…… button1.Click += delegate(object sender, EventArgs e) { MessageBox.Show("匿名メソッド!"); }; }ラムダ式
public Form1() { ……省略…… button1.Click += (sender, e) => MessageBox.Show("ラムダ!"); }
ラムダ式の省エネ感(ㆁᴗㆁ✿)
@see ドットインストール
delegate ラムダ式
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace myspace { delegate void MyDelegate(); class MyApp { //static void SayHi() //{ // Console.WriteLine("hi!"); //} //ラムダ式 static void SayHi() => Console.WriteLine("hi!"); static void SayHello() => Console.WriteLine("Hello"); static void Main() { MyDelegate ShowMessage; ShowMessage = SayHi; ShowMessage += SayHello; ShowMessage(); while (true) ; } } }
匿名メソッド
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Threading; namespace myspace { delegate void MyDelegate(); class MyApp { //static void SayHi() //{ // Console.WriteLine("hi!"); //} //ラムダ式 //static void SayHi() => Console.WriteLine("hi!"); //static void SayHello() => Console.WriteLine("Hello"); static void Main() { MyDelegate ShowMessage; //ShowMessage = SayHi; // 匿名メソッド ShowMessage = delegate { Console.WriteLine("hi!"); }; //ラムダ式: 引数 => 処理 ShowMessage += () => Console.WriteLine("Hello"); ShowMessage(); while (true) ; } } }