我在下面有这段代码。
delegate void TestDel(string str);
static void Main(string[] args)
{
TestDel td = name=> Console.WriteLine(name);
TestDel td = (string name) { Console.WriteLine(name);}
td("hello");
Console.ReadLine();
}
在这里,我有一个委托 TestDel ,它首先是通过使用一个很好的 lambda 表达式创建的。但是我使用匿名方法的第二种方法不会编译,但如果像下面这样:
TestDel td = delegate(string name) { Console.WriteLine(name);};
然后一切都很好,我的困惑是为什么我可以使用 lambda 表达式而不是匿名方法,而它们是相同的,为什么我需要使用匿名方法而不是 lambda 表达式?