C# 匿名方法如何省略参数列表?
我在上的MSDN文档中读到了这一点,但我不理解关于省略参数列表的部分。它说: 有一种情况是匿名方法提供功能 在lambda表达式中找不到。匿名方法允许您省略 参数列表。这意味着可以使用匿名方法 转换为具有各种签名的代表。这不是 可能与lambda表达式有关C# 匿名方法如何省略参数列表?,c#,lambda,anonymous-function,anonymous-methods,C#,Lambda,Anonymous Function,Anonymous Methods,我在上的MSDN文档中读到了这一点,但我不理解关于省略参数列表的部分。它说: 有一种情况是匿名方法提供功能 在lambda表达式中找不到。匿名方法允许您省略 参数列表。这意味着可以使用匿名方法 转换为具有各种签名的代表。这不是 可能与lambda表达式有关 您能否提供一个为匿名方法创建参数列表的示例?我认为您对lambda表达式和匿名方法感到困惑。您需要了解的是,lambda表达式只不过是同义词。例如,您可以创建一个匿名方法,该方法接受2个整数参数并返回一个整数,如下所示: Func<in
您能否提供一个为匿名方法创建参数列表的示例?我认为您对lambda表达式和匿名方法感到困惑。您需要了解的是,lambda表达式只不过是同义词。例如,您可以创建一个匿名方法,该方法接受2个整数参数并返回一个
整数,如下所示:
Func<int, int, int> func = delegate(int x, int y)
{
return x + y;
};
因此,lambda表达式允许您使用更少的代码创建匿名方法,与匿名方法相比,它们没有任何缺点,因为它们是完全不同的东西。您将苹果与桔子进行比较。但是旧的C#2样式的匿名方法可以完全省略所有参数,与两个参数的零“函数”类似,它可以是Func funcZero=delegate{return 0;}代码>。使用lambda语法时,必须同时给出这两个参数(即使不使用它们),但可以推断它们的类型,因此Func funcZero=(x,y)=>0代码>@JeppeStigNielsen,这是OP的要求。你本可以提供答案的!答案不是答案,但注释是。请参阅许多其他线程、fpr示例和所有链接到它的线程。我编辑了q并投票重新打开它。我想现在清楚了。但要回答这个问题,你可以
Func<int, int, int> func2 = (x,y) => x + y;
Action act = () => Console.WriteLine("hello world");