我在Anonymous Methods (C# Programming Guide)的MSDN文档中阅读了这篇文章,但我不理解省略参数列表的部分。它说:
有一种情况是匿名方法提供功能 在lambda表达式中找不到。匿名方法使您可以省略 参数列表。这意味着匿名方法可以 转换为具有各种签名的代表。这不是 可以使用lambda表达式。
您能否提供一个省略匿名方法参数列表的示例?
答案 0 :(得分:3)
我认为您对 lambda表达式和匿名方法感到困惑。您需要了解的是lambda表达式只是 syntantic sugars 。例如,您可以创建一个带有2个整数参数的匿名方法,并返回integer
,如下所示:
Func<int, int, int> func = delegate(int x, int y)
{
return x + y;
};
使用lambda语法,您可以将该语句缩短为:
Func<int, int, int> func2 = (x,y) => x + y;
此外,您并不需要将任何参数传递给lambda语句。例如,这完全有效:
Action act = () => Console.WriteLine("hello world");
因此,lambda表达式允许您使用 less 代码创建匿名方法,与匿名方法相比,它们没有任何缺点,因为它们完全是不同的东西。你正在将 apples 与 oranges 进行比较。