最接近下面的是什么?不幸的是,下面的方法名称编译错误。
int val = delegate(string s)
{
return 1;
}("test");
我也尝试了 (...)=>{...} 语法,但它错得很厉害
最佳答案
两种形式的匿名函数(lambda 表达式和匿名方法)都需要转换为特定类型。所以这是有效的:
int val = ((Func<string, int>)(delegate(string s)
{
return 1;
}))("test");
这也是:
int val = ((Func<string, int>)(s => 1))("test");
不过,我实际上并不建议使用它们中的任何一个。使用单独的局部变量更具可读性:
Func<string, int> del = s => 1;
int val = del("test");
(根据 yBee 的回答,您也可以使用类似构造函数的语法 - 但我个人更喜欢 cast 样式语法。)
关于c# - 匿名 lambda ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14896807/