首页 > 解决方案 > 在 C# 中使用丢弃作为返回方法

问题描述

在 C# 中使用丢弃是否有任何性能优势?在 Visual Studio 2019 中,编辑器建议对不使用返回值的返回类型方法使用丢弃。

标签: c#c#-7.0

解决方案


根据MSDN

丢弃在应用程序代码中有意使用的临时虚拟变量。丢弃相当于未赋值的变量;它们没有价值。因为只有一个丢弃变量,并且该变量甚至可能没有分配存储空间,所以丢弃可以减少内存分配。

如您所见,您可以减少内存使用量,因为它们可能不会被分配。但确切的行为取决于代码的上下文。

丢弃的主要用例是元组,switch表达式中的模式匹配

switch (obj)
{
     case SomeType someTypeValue:
        ...
        break;
     case null:
        ...
        break;
     case object _:
        ...
        break;
}

out参数的方法

if (int.TryParse(s, out _))
{    
}

并且只是忽略方法的返回值_ = Task.Run(() => {...});,就像你想要的那样。

在干净的代码方面也有很大的可用性优势。通过使用丢弃_,您表明返回值是未使用的


推荐阅读