1

我已经看到你可以做

using System.IO

并使用

Path.GetDirectoryName(blah blah)

或直接使用

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

从性能的角度来看,它们之间有什么区别吗?

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

或者这只是为了避免跨命名空间的对象之间的命名冲突?

任何见解将不胜感激:)

4

2 回答 2

6

不,它们编译为相同的 IL。这纯粹是源代码的问题 - 使用短名称而不是完全限定名称通常更具可读性。

无论哪种方式,编译结果都是相同的。

于 2010-07-22T17:40:49.333 回答
3

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

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

于 2010-07-22T17:43:08.780 回答