Dre*_*w R 13 .net c# lambda delegates anonymous-function
我是否遗漏了某些内容,或者无法从lambda函数返回值,例如..
Object test = () => { return new Object(); };
要么
string test = () => { return "hello"; };
我得到一个构建错误"无法将lambda表达式转换为'string'类型,因为它不是委托类型".
这就像这个语法分配lambda而不是lambda的结果,我没想到.我可以通过将函数分配给Func并按名称调用它来实现所需的功能,但这是唯一的方法吗?
请不要"为什么你需要这样做?" 关于我的例子.
提前致谢!
Kon*_*lph 33
这是可能的,但你正在尝试将lambda分配给a string.- 你需要调用 lambda:
Func<string> f = () => { return "hello"; };
string test = f();
Run Code Online (Sandbox Code Playgroud)
错误消息实际上说明了一切:
无法将lambda表达式转换为'string'类型
......这正是这里的问题.
如果你想调用lambda内联 - 但是真的:为什么? - 你也可以这样做,你只需要首先明确地将它变成一个委托:
string test = (new Func<string>(() => { return "hello"; }))();
Run Code Online (Sandbox Code Playgroud)