无法将lambda表达式转换为类型“…”,因为它不是委托类型
美好的一天! 我试图使用lambda表达式编写一个匿名方法,该表达式将从异步任务返回一个对象。 我想在构造函数中执行此操作,因此这是我无法使其父方法异步的原因。
ReadJsonAsync方法返回一个Session
对象。 我会告诉你相关的代码:
Session session; fileService = new FileService(); session = async () => { return await fileService.ReadJsonAsync() };
提前致谢!
如果你想要一个匿名方法 ,你必须声明一个返回一个Task
因为它用async
修饰符标记,因此必须返回一个void
(仅用于异步事件处理程序), Task
或Task
:
Func> anonFunction = async () => await fileService.ReadJsonAsync();
如果你所做的只是运行ReadJsonAsync
,你也可以自己保存状态机生成:
Func> anonFunction = fileService.ReadJsonAsync;
然后你可以在更高阶函数上await
它:
Func> anonFunction = fileService.ReadJsonAsync; await anonFunction();