在C#中用单行创建和应用lambda

Stu*_*etz 3 c# c#-4.0

我希望这不是一个愚蠢的问题,但有没有办法在C#中实现以下类型的东西?

int y = (x => x * x)(9);
Run Code Online (Sandbox Code Playgroud)

我知道我可以这样做:

delegate int Transformer(int x);
Transformer square = x => x * x;
int y = square(9);
Run Code Online (Sandbox Code Playgroud)

但有没有办法更简洁地做同样的事情?如果没有,有什么理由不是吗?

dtb*_*dtb 5

因为lambda不与委托类型相关联,所以在左侧或右侧定义lambda时需要指定委托类型.

这应该做的伎俩:

int result = new Transformer(x => x * x)(9);
Run Code Online (Sandbox Code Playgroud)

同样的事情更简洁:

int x = 9;
int result = x * x;
Run Code Online (Sandbox Code Playgroud)