我试图找出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