未使用的使用语句

我可能已经知道这个问题的答案,但我认为无论如何都值得问。 如果我在我的代码文件中加载了一些未using语句;

  1. 这会对性能产生任何不利影响吗?
  2. 编译器如何在编译/运行时处理它们?

谢谢

这有什么不利的性能影响吗?

没有。

编译器如何在编译/运行时处理它们?

在编译时,它们会按照您的期望执行,即充当命名空间导入。 它们不出现在已编译的二进制文件中:对类型的任何引用都使用完全限定名称。

即使不需要,编译器也会在using语句中检查命名空间; 如果删除命名空间,则引用它的所有using语句都将失败。

对我来说,冗余的using语句就像冗余的注释。 它们对编译器没有任何影响,但包含太多它们,并且您可能会使开发人员感到困惑。

它根本不会影响运行时的性能。

从那以后,它可能会略微增加编译时间:

1)编译器需要解析更多的字符
2)它必须在更多候选者中查找标识符。 但由于这可能使用哈希表,因此它也不应该很昂贵。

我猜测编译器减速可以忽略不计

我猜它会减慢Intellisense的速度,因为它必须显示的列表和filter会相当长一些。

删除未使用的使用更具风格,而不是性能改进。 您需要注意扩展方法,因为它们通过使用语句进入范围。 例如,即使当前未using System.Linq我也不会删除它。

在运行时没有性能损失,使用在编译时解决,无用的被忽略。

运行时没有性能影响。 但是,许多命名空间可能会降低代码完成速度并降低工作效率

它完全没有影响 – 请参阅对此问题的回答:

性能如何受未使用的using指令的影响?

它可能会使编译时间更长,但它对运行时性能没有影响或影响可忽略不计。