从 C# 7 开始,我们可以使用丢弃_来丢弃未使用的变量。我使用它的一件事是在即发即忘的任务中。
考虑这个方法:
public Task Example()
{
// Do some fire-and-forget stuff.
}
Run Code Online (Sandbox Code Playgroud)
您可以通过简单地不等待任务来消除此任务:Example(),但是这仍然会给您一个警告。使用丢弃关键字,我们现在可以使用: _ = Example(),它消除了这个警告。我想知道这是否有任何我应该注意的令人讨厌的副作用?(除了 MSDN 声明的内容:“这具有抑制操作即将完成时抛出的异常的效果。”)
丢弃语法只是一种语法糖,用于抑制“此表达式的返回值未使用”的警告。这两行编译为相同的 IL:
_ = Example();
Example();
Run Code Online (Sandbox Code Playgroud)
它们都成为相同的call指令。
因此,如果Example()对您有用,那么_ = Example().
| 归档时间: |
|
| 查看次数: |
659 次 |
| 最近记录: |