vs使用[namespace.x.xx]?

时间:2010-07-22 17:40:01

标签: .net performance using-directives

我见过你可以做到

using System.IO

并使用

Path.GetDirectoryName(blah blah)

或直接使用

System.IO.Path.GetDirectoryName(blah blah);

性能的角度来看,它们之间是否存在差异?

using System.IO是否将命名空间中的所有静态类加载到内存中导致使用更多内存,或者框架是否足够智能以避免这种情况?如果是,怎么样?

或者这只是用来避免命名跨命名空间的对象之间的冲突吗?

非常感谢任何见解:)

2 个答案:

答案 0 :(得分:6)

不,他们编译到同一个IL。这纯粹是源代码的问题 - 使用短名称而不是完全合格的名称通常更具可读性。

编译结果无论如何都是相同的。

答案 1 :(得分:3)

如果你看一下IL,这两种方法没有区别。所有班级名称都是完全合格的。静态类仅在首次使用类时加载。因此,两种方法在最终代码中都是等效的。

此外,我发现浏览using声明以查看类在外部事物方面正在做什么更有帮助(例如,执行I / O的类或生成XML的类) )。这与总是声明完全限定的类名相反。