从C# 7开始,我们可以使用discard _来丢弃未使用的变量。我使用它的其中一件事是在“即发即忘”的任务中。
考虑以下方法:
public Task Example()
{
// Do some fire-and-forget stuff.
}您可以通过简单地不等待任务Example()来触发并忘记此任务,但是这仍然会给您一个警告。有了discard关键字,我们现在可以使用:_ = Example(),它消除了这个警告。我想知道这有没有什么我应该注意的不良副作用?(与MSDN声明的不同:“这具有抑制操作在即将完成时抛出的异常的效果。”)
发布于 2019-10-07 17:25:35
discard语法只是用来抑制“此表达式的返回值未使用”警告的语法糖。这两行代码编译为相同的IL:
_ = Example();
Example();它们都变成了相同的call指令。
因此,如果Example()适用于您,那么_ = Example()也将适用。
https://stackoverflow.com/questions/58266281
复制相似问题