标记了async,函数里就可以用await,return的语义也会发生变化,返回类型也必须是Task或者Task<T>。所以这就是个语法而已,不要去对async钻牛角尖。你这个问题就像为什么只有函数里面可以写语句而类里面不行一样。

如果你用了async但是没用await,你也是创造了一个Task类的构造函数,仅此而已。这跟await关系不大,async决定的是return应该怎么理解。既然都一定要有一个关键字来改变return了,那要求用了await也要写上async,也就是顺理成章的事情了。

如果当初要求你把return写成await return的话,那没有async的确不是问题。你看yield return就没让你加什么关键字。



作者:知乎用户
链接:https://www.zhihu.com/question/298620447/answer/511245136
来源:知乎
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

相关文章:

  • 2022-12-23
  • 2022-03-09
  • 2021-11-07
  • 2022-12-23
  • 2021-09-11
猜你喜欢
  • 2022-12-23
  • 2021-09-24
  • 2022-01-14
  • 2021-12-11
  • 2021-12-28
  • 2022-12-23
相关资源
相似解决方案