2013-04-21 41 views
2

之间的区别是什么增加System.Net这样的区别:和没有命名空间中的声明与System.Net和不System.Net

CookieContainer globalcontainer = new CookieContainer(); 

CookieContainer globalcontainer = new System.Net.CookieContainer(); 

使用类效率更高?

+0

两者应该是相同的,如果你有一个使用申报System.Net命名空间。唯一的区别是显式和可读性。我个人更喜欢在类型之前添加名称空间。对我来说更具可读性,但没有性能差异。 – 2013-04-21 09:16:06

回答

7

两者都不是更高效,一个是明确指定命名空间,另一个是隐式的。

在你的cs文件的顶部,using指令导入的命名空间,这意味着类型中这些空间不需要完全合格的路径中的代码

例如被认可

List<T>出现在System.Collections.Generic ...没有用指令为这个命名空间必须使用完全合格的名称:

System.Collections.Generic.List<int> someList; 

而有了它,你不

using System.Collections.Generic; 

List<int> someList; 

有时可能是名称空间冲突 - 想象下列情况:

Some.Namespace.Task 
Some.Othernamespace.Task 

如果导入两个命名空间:

using Some.Namespace; 
using Some.Othernamespace; 

Task someTask; // <--- this line will cause a compile time error 

编译器不知道你想要的Task,从Some.Namespace的一个或Some.Othernamespace的一个 - 在这种情况下,你必须是具体的和供应完整的命名空间(或使用别名)

希望这有助于

阅读所有关于命名空间的位置:

http://msdn.microsoft.com/en-gb/library/z2kcy19k(v=vs.80).aspx

+0

非常感谢您的回答,我已经得到了答案 – 2013-04-21 09:43:49

3

在运行时,两者往往是相同的。

为了便于阅读,我通常不希望在同一语句中使用命名空间(将其放在文件顶部的using指令中),因为它通常会节省我的空间,使我的线条不会变得太长,这是公认的小的好处。

这些时候,我做包括命名空间:

  • 当我知道类的名字很可能被误解,有时也有在.NET不同的命名空间使用的类型,我想代码的读者得到我的意思是更快

  • 当它是来自这个命名空间的唯一调用时,有时候我会明确地包含这个命名空间。

  • 如果我导入多个包含相同类型的名称空间。这一点很明显。

所以,答案可能听起来好或坏,都是“取决于”。无论什么使得代码在更短的时间内获得更多的可读性。

http://gurustop.net

相关问题