首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >丢弃带有discard关键字的任务会导致任何副作用吗?

丢弃带有discard关键字的任务会导致任何副作用吗?
EN

Stack Overflow用户
提问于 2019-10-07 16:55:50
回答 1查看 754关注 0票数 2

从C# 7开始,我们可以使用discard _来丢弃未使用的变量。我使用它的其中一件事是在“即发即忘”的任务中。

考虑以下方法:

代码语言:javascript
复制
public Task Example()
{
    // Do some fire-and-forget stuff.
}

您可以通过简单地不等待任务Example()来触发并忘记此任务,但是这仍然会给您一个警告。有了discard关键字,我们现在可以使用:_ = Example(),它消除了这个警告。我想知道这有没有什么我应该注意的不良副作用?(与MSDN声明的不同:“这具有抑制操作在即将完成时抛出的异常的效果。”)

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-07 17:25:35

discard语法只是用来抑制“此表达式的返回值未使用”警告的语法糖。这两行代码编译为相同的IL:

代码语言:javascript
复制
_ = Example();
Example();

它们都变成了相同的call指令。

因此,如果Example()适用于您,那么_ = Example()也将适用。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58266281

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档