[問題] 我看不懂 => lambda
看了好久,還是搞不懂 lambda這個東西....
http://msdn.microsoft.com/zh-tw/library/bb383984.aspx
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
// Use a lambda expression to define an event handler.
this.Click += (s, e) => {
MessageBox.Show(((MouseEventArgs)e).Location.ToString());
};
}
}
根據測試結果,這一段的功能等於
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
this.Click += new System.EventHandler(this.點擊);
}
private void 點擊(object sender, EventArgs e)
{
MessageBox.Show(((MouseEventArgs)e).Location.ToString());
}
}
那(s,e)到底是幹什麼用的???
在前面完全沒宣告過這個東西.....
我又怎麼會知道,這到底是幹什麼用的?
再者,在逐行執行的時候,我看見編譯器會回頭執行委派中Lambda右邊運算式
這有點像method
但是Lambda中可以讀取外部變數,但是外部程式不能讀取Lambda中宣告的變數
我就不了解這到底是什麼鬼了.....
感覺起來有點像For之類的迴圈.....
但又不是迴圈.....
for (;;)
{
int Xi = 0;
}
Xi = 5; //編譯器會說Xi不存在.....
請問我該怎麼去理解、使用 => 這個東西?
--
◢ 鄉民啊!鄉民! 請告訴我誰是最純潔的人!
◢█ │
PTT │
██ :就是你!Snow White F23ko!│
█◤ ╯
◤ ﹨(╯▽╰ )∕
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 163.27.109.77
→
03/01 20:28, , 1F
03/01 20:28, 1F
→
03/01 20:31, , 2F
03/01 20:31, 2F
→
03/01 22:11, , 3F
03/01 22:11, 3F
→
03/01 22:13, , 4F
03/01 22:13, 4F
推
03/01 23:14, , 5F
03/01 23:14, 5F
→
03/01 23:15, , 6F
03/01 23:15, 6F
→
03/02 12:42, , 7F
03/02 12:42, 7F
→
03/02 17:58, , 8F
03/02 17:58, 8F
推
03/02 18:06, , 9F
03/02 18:06, 9F
→
03/02 19:58, , 10F
03/02 19:58, 10F
→
03/02 19:58, , 11F
03/02 19:58, 11F
→
03/02 20:24, , 12F
03/02 20:24, 12F
討論串 (同標題文章)
以下文章回應了本文:
完整討論串 (本文為第 1 之 2 篇):