所以,可能是一個簡單的問題,只是一個簡單的答案,但我不知道它是什麼,我很好奇:)。爲什麼編譯器允許我做這樣的事情?關於匿名方法簽名和事件處理程序的簡單問題
button1.Click += delegate { someFlag = true; };
(我只能用.NET 2.0,所以沒有lamdas,但相同的概念)
我卻無法做到這一點:
button1.Click += MyDelegateMethod
// snip
// compile error, signature does not match the signature of System.EventHandler.
private void MyDelegateMethod()
{
}
我希望,我將不得不聲明我的匿名方法爲:
delegate(object sender, EventArgs e) { someFlag = true; };
我不明白爲什麼它是確定了一個匿名方法,但是當我寫詩也不行e完整的方法本身。任何人?
「編譯魔術師」,這就是我想的:) – 2009-04-28 00:18:29