"()=> true"的结果是什么?

JER*_*KER 1 c#

我正在审查另一个人的代码,不能问他......那行C#代码有什么作用?

VVS*_*VVS 6

它是一个lambda表达式,不带参数并返回true.等效的匿名代表是:

delegate() { return true; };
Run Code Online (Sandbox Code Playgroud)

很可能该方法需要一个类型的参数Func<bool>,它是一个通用委托,具有与上面代码相​​同的签名.

编辑:

如cdhowie所述,上面的lambda也可以被评估为类型的表达式树Expression<Func<bool>>.

这是等效的表达式树:

var body = Expression.Constant(true);
Expression<Func<bool>> returnsTrueExpression = Expression.Lambda<Func<bool>>(body);
Run Code Online (Sandbox Code Playgroud)

您可以通过调用将其"转换"为实际的委托 Compile()

Func<bool> returnsTrueFunc = returnsTrueExpression.Compile();
Run Code Online (Sandbox Code Playgroud)