【问题标题】:Is it possible to forbid ignoring Task returned by method in C#?是否可以禁止忽略 C# 中方法返回的任务?
【发布时间】: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


【解决方案1】:

有没有办法得到这样的检查?

是的,使用AsyncFixer。这是一个 Roslyn 代码分析器,可以完全按照您的意愿工作。这将有警告,并允许您修复所有可能出现的问题。

【讨论】:

    猜你喜欢
    • 2017-08-07
    • 1970-01-01
    • 1970-01-01
    • 2023-01-30
    • 1970-01-01
    • 2012-08-06
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    相关资源
    最近更新 更多