最后一条语句不能编译。请参考评论和代码,了解我的问题的细节。lambda - >委托不编译
class Test
{
private static void Foo(Delegate d){}
private static void Bar(Action a){}
static void Main()
{
Foo(new Action(() => { Console.WriteLine("a"); })); // Action converts to Delegate implicitly
Bar(() => { Console.WriteLine("b"); }); // lambda converts to Action implicitly
Foo(() => { Console.WriteLine("c"); }); // Why doesn't this compile ? (lambda converts to Action implicitly, and then Action converts to Delegate implicitly)
}
}
考虑在岗编译器错误消息。它将有助于搜索能力和上下文(对于之前没有遇到过这种情况的人) - 并考虑将标题*与问题相关* [错误消息的人性化形式应该是好的标题出发点] – 2011-06-14 02:36:52
还有另一个问题:我们已经有lambda和Action,Func,为什么我们还需要委托?如果没有这种叫做委托的东西,就不会有这样烦人的问题。 –
2011-06-14 05:05:31