所以,可能是一个简单的问题,只是一个简单的答案,但我不知道它是什么,我很好奇:)。为什么编译器允许我做这样的事情?关于匿名方法签名和事件处理程序的简单问题
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