我可能已经知道这个问题的答案,但我认为无论如何都值得问。如果我的代码文件中有using
个语句,那么不是正在使用;
由于
答案 0 :(得分:19)
这会对性能产生任何不利影响吗?
没有
编译器如何在编译/运行时处理它们?
在编译时,它们会按照您的期望执行操作,即充当命名空间导入。它们不会出现在已编译的二进制文件中:对类型的任何引用都使用完全限定名称。
编译器确实在using
语句中检查命名空间,即使它不需要;如果删除命名空间,则引用它的所有using
语句都将失败。
对我来说,多余的using
语句就像多余的评论。它们对编译器没有任何影响,但包含太多它们,并且您可能会使开发人员感到困惑。
答案 1 :(得分:8)
它不会影响运行时的性能。
从那以后,它可能会略微增加编译时间:
1)编译器需要解析几个字符
2)它必须在更多候选者之间查找标识符。但由于这可能使用哈希表,因此它也不应该很昂贵。
我猜编译器减速可以忽略不计。
我猜它会减慢Intellisense的速度,因为它必须显示的列表和过滤器会相当长一些。
删除未使用的用途更具风格,而不是性能提升。您需要注意扩展方法,因为它们通过使用语句进入范围。例如,即使它当前未使用,我也不会删除using System.Linq
。
答案 2 :(得分:1)
运行时没有性能损失,在编译时解析使用,忽略无用的。
答案 3 :(得分:1)
在运行时没有性能影响。但是,许多命名空间可能会减慢代码完成速度并降低工作效率
答案 4 :(得分:0)
它完全没有影响 - 请参阅对此问题的回应:
答案 5 :(得分:0)
它可能会使编译时间更长,但它对运行时性能没有影响或可忽略不计。