c# Lambda函数:返回数据
本文关键字:返回 数据 函数 Lambda | 更新日期: 2023-09-27 18:04:47
我错过了什么,或者是不可能从lambda函数返回值,如…
Object test = () => { return new Object(); };
或
string test = () => { return "hello"; };
我得到一个构建错误"无法将lambda表达式转换为类型'字符串',因为它不是委托类型"。
就像这个语法分配lambda而不是lambda的结果,这是我没有预料到的。我可以通过将函数分配给Func并按名称调用它来实现所需的功能,但这是唯一的方法吗?
关于我的例子,请不要问"为什么你需要这样做?"
提前感谢!
这是可能的,但您正试图将lambda分配给string
。-您需要调用 lambda:
Func<string> f = () => { return "hello"; };
string test = f();
错误信息实际上说明了一切:
无法将lambda表达式转换为'string'类型
…这正是问题所在。
如果你想调用lambda inline -但实际上:为什么要?-你也可以这样做,你只需要首先显式地把它变成一个委托:
string test = (new Func<string>(() => { return "hello"; }))();