Csharp/C#教程:无法将lambda表达式转换为类型“…”,因为它不是委托类型分享


无法将lambda表达式转换为类型“…”,因为它不是委托类型

美好的一天! 我试图使用lambda表达式编写一个匿名方法,该表达式将从异步任务返回一个对象。 我想在构造函数中执行此操作,因此这是我无法使其父方法异步的原因。

ReadJsonAsync方法返回一个Session对象。 我会告诉你相关的代码:

 Session session; fileService = new FileService(); session = async () => { return await fileService.ReadJsonAsync() }; 

提前致谢!

如果你想要一个匿名方法 ,你必须声明一个返回一个Task因为它用async修饰符标记,因此必须返回一个void (仅用于异步事件处理程序), TaskTask

 Func> anonFunction = async () => await fileService.ReadJsonAsync(); 

如果你所做的只是运行ReadJsonAsync ,你也可以自己保存状态机生成:

 Func> anonFunction = fileService.ReadJsonAsync; 

然后你可以在更高阶函数上await它:

上述就是C#学习教程:无法将lambda表达式转换为类型“…”,因为它不是委托类型分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!

 Func> anonFunction = fileService.ReadJsonAsync; await anonFunction(); 

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/cdevelopment/987183.html

(0)
上一篇 2021年12月22日
下一篇 2021年12月22日

精彩推荐