我正在定义一个 lambda 并立即通过附加“()”来调用它。
尝试:
int i = (() => 0) ();
错误:
Error CS0119: Expression denotes a
anonymous method', where a
method group' was expected
这是为什么?
最佳答案
您不是在“定义 lambda”..您是在用括号括起您认为是 1 的内容。
编译器不会推断出这种类型的事情。它需要上下文。您可以通过将 lambda 的表示分配或强制转换为委托(delegate)类型来为其提供上下文:
Func<int> f = () => 0;
int i = f();
上下文很清楚。如果你想要一个不清楚的..这种事情也有效:
int i = ((Func<int>)(() => 0))();
关于c# - 定义一个lambda函数并立即执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24220442/