Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 匿名方法如何省略参数列表?_C#_Lambda_Anonymous Function_Anonymous Methods - Fatal编程技术网

C# 匿名方法如何省略参数列表?

C# 匿名方法如何省略参数列表?,c#,lambda,anonymous-function,anonymous-methods,C#,Lambda,Anonymous Function,Anonymous Methods,我在上的MSDN文档中读到了这一点,但我不理解关于省略参数列表的部分。它说: 有一种情况是匿名方法提供功能 在lambda表达式中找不到。匿名方法允许您省略 参数列表。这意味着可以使用匿名方法 转换为具有各种签名的代表。这不是 可能与lambda表达式有关 您能否提供一个为匿名方法创建参数列表的示例?我认为您对lambda表达式和匿名方法感到困惑。您需要了解的是,lambda表达式只不过是同义词。例如,您可以创建一个匿名方法,该方法接受2个整数参数并返回一个整数,如下所示: Func<in

我在上的MSDN文档中读到了这一点,但我不理解关于省略参数列表的部分。它说:

有一种情况是匿名方法提供功能 在lambda表达式中找不到。匿名方法允许您省略 参数列表。这意味着可以使用匿名方法 转换为具有各种签名的代表。这不是 可能与lambda表达式有关


您能否提供一个为匿名方法创建参数列表的示例?

我认为您对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");