c# Lambda函数:返回数据

本文关键字:返回 数据 函数 Lambda | 更新日期: 2023-09-27 18:04:47

我错过了什么,或者是不可能从lambda函数返回值,如…

Object test = () => { return new Object(); };

string test = () => { return "hello"; };

我得到一个构建错误"无法将lambda表达式转换为类型'字符串',因为它不是委托类型"。

就像这个语法分配lambda而不是lambda的结果,这是我没有预料到的。我可以通过将函数分配给Func并按名称调用它来实现所需的功能,但这是唯一的方法吗?

关于我的例子,请不要问"为什么你需要这样做?"

提前感谢!

c# Lambda函数:返回数据

这是可能的,但您正试图将lambda分配给string。-您需要调用 lambda:

Func<string> f = () => { return "hello"; };
string test = f();

错误信息实际上说明了一切:

无法将lambda表达式转换为'string'类型

…这正是问题所在。

如果你想调用lambda inline -但实际上:为什么要?-你也可以这样做,你只需要首先显式地把它变成一个委托:

string test = (new Func<string>(() => { return "hello"; }))();