我希望这不是一个愚蠢的问题,但有没有办法在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)
但有没有办法更简洁地做同样的事情?如果没有,有什么理由不是吗?
因为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)
| 归档时间: |
|
| 查看次数: |
103 次 |
| 最近记录: |