さて前回書いたdelegateのこれ
public Form1() { InitializeComponent(); System.Windows.Forms.MouseEventHandler mouseEventHandler = new System.Windows.Forms.MouseEventHandler(this.OnButton1Click); // System.Windows.Forms.MouseEventHandlerはdelegataなので、上記のC#1.1の記法でmouseEventHandlerはメソッドthis.OnButton1Clickですとインスタンスしている this.button1.MouseClick += mouseEventHandler; // MouseClickのイベントハンドラにmouseEventHandlerを追加 } private void OnButton1Click(object sender, MouseEventArgs e) { MessageBox.Show("Aho"); }
わけなのだが、これをわけの分からない呪文で書くとこうなる。
public Form1() { this.button1.MouseClick += (sender, e) => { MessageBox.Show("Aho"); }; }
こりだけ。
これが呪文ラムダ式。