下面最接近的是什么?不幸的是,下面给我一个方法名称编译错误.
int val = delegate(string s)
{
return 1;
}("test");
Run Code Online (Sandbox Code Playgroud)
我也试过(...)=> {...}语法,但是错了
两种形式的匿名函数(lambda表达式和匿名方法)都需要特定类型才能转换为.所以这是有效的:
int val = ((Func<string, int>)(delegate(string s)
{
return 1;
}))("test");
Run Code Online (Sandbox Code Playgroud)
这是这样的:
int val = ((Func<string, int>)(s => 1))("test");
Run Code Online (Sandbox Code Playgroud)
我实际上并不建议使用其中任何一个.使用单独的局部变量更具可读性:
Func<string, int> del = s => 1;
int val = del("test");
Run Code Online (Sandbox Code Playgroud)
(根据yBee的回答,您也可以使用类似构造函数的语法 - 但我个人更喜欢演员样式语法.)
| 归档时间: |
|
| 查看次数: |
158 次 |
| 最近记录: |