gpt4 book ai didi

c# - 使用 discard 关键字丢弃任务会导致任何副作用吗?

转载 作者:行者123 更新时间:2023-11-30 21:27:08 26 4
gpt4 key购买 nike

从 C# 7 开始,我们可以使用丢弃 _ 来丢弃未使用的变量。我用它做的事情之一是即发即弃任务。

考虑这个方法:

public Task Example()
{
// Do some fire-and-forget stuff.
}

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

最佳答案

丢弃语法只是一个语法糖,用来抑制“该表达式的返回值未被使用”的警告。这两行编译成相同的 IL:

_ = Example();
Example();

它们都成为相同的call 指令。

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

关于c# - 使用 discard 关键字丢弃任务会导致任何副作用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58266281/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com