C# · 12月 27, 2021

c# – 没有输入参数的匿名函数

我试图找出C#的匿名函数的语法,对我来说没有意义.为什么这是有效的 Func<string,string> f = x => { return “Hello,world!”; };

但这不是吗?

Func<string> g = { return “Hello,world!”; };解决方法 第二个仍然需要lambda语法: Func<string> g = () => { return “Hello,world!”; };

首先,你有效地写:

Func<string,string> f = (x) => { return “Hello,world!”; };

但是,如果只有一个参数,C#会让你离开()定义一个lambda,让你写x =>代替.当没有参数时,必须包含().

这在C#语言规范的7.15节中指定:

In an anonymous function with a single,implicitly typed parameter,the parentheses may be omitted from the parameter list. In other words,an anonymous function of the form

( param ) => expr

can be abbreviated to

param => expr