【发布时间】:2016-05-25 13:17:52
【问题描述】:
我的假设(基于我当前的项目)是,在 99% 的情况下,如果方法的返回类型是 Task,那么您不希望返回值被忽略。当方法返回类型从 void 更改为 Task 时,这尤其是一个问题,因为执行流程可能会变得模糊。如果发生这种情况,我真的很想有错误/警告。我知道如果这种情况发生在标记为异步的方法中,编译器会发出警告,但我的统计数据超出了异步方法。
有没有办法得到这样的检查?也许使用 Roslyn 可以以某种方式扩展编译器?
【问题讨论】:
-
您可以找到为您执行此操作的工具。但也许一个学习并最终得到你想要的东西的好方法是写你自己的Roslyn code analyzer。它们要么安装到您的 VS 中并应用于您的所有项目,要么安装到您的一个项目中(因此是可移植的)。
-
粗略地说,没有“返回值”,返回类型为
Task。但是,您希望在异步方法中返回Task,以便捕获抛出的异常。 msdn.microsoft.com/en-us/magazine/jj991977.aspx -
您正在寻找
Roslyn代码异步/等待分析器。 visualstudiogallery.msdn.microsoft.com/…
标签: c# return async-await task