像这样添加System.Net
之间有什么区别:
CookieContainer globalcontainer = new System.Net.CookieContainer();
并使用声明中没有名称空间的类
CookieContainer globalcontainer = new CookieContainer();
哪种效率更高?
答案 0 :(得分:7)
两者都没有更高效,一个是明确指定命名空间,另一个是隐含的。
在.cs文件的顶部,using指令导入名称空间,这意味着这些名称空间中的类型不需要在代码中识别完全限定的路径
e.g。
List<T>
出现在System.Collections.Generic
...如果没有此命名空间的using指令,则必须使用完全限定名称:
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
答案 1 :(得分:3)
在运行时,两者通常是相同的。
为了便于阅读,我经常不喜欢在同一个语句中使用命名空间(将它放在文件顶部的using
指令中),因为它通常可以节省空间,让我的行不会太长,这无疑是一个小小的好处。
这些是我包含命名空间的时候:
当我知道类名可能被误解时,有时会在.NET中的不同命名空间中使用类型,我希望代码的读者能够更快地得到我的意思
当它是来自此命名空间的唯一调用时,有时我会明确地包含命名空间。
如果我正在导入包含相同类型的多个名称空间。这一点很明显。
所以,答案,无论好坏,这听起来都是“取决于”。无论是什么使得代码在更短的时间内更具可读性。