【问题标题】:The difference between with System.Net and without System.Net使用 System.Net 和不使用 System.Net 的区别
【发布时间】:2013-04-21 09:14:03
【问题描述】:

像这样添加System.Net有什么区别:

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

在声明中使用没有命名空间的类

 CookieContainer globalcontainer = new CookieContainer();

哪个效率更高?

【问题讨论】:

  • 如果您为 System.Net 命名空间声明了 using,则两者应该相同。唯一的区别是明确和可读性。就我个人而言,我更喜欢在类型之前不添加命名空间。对我来说更具可读性,但没有性能差异。

标签: c# system.net


【解决方案1】:

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

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

例如

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

【讨论】:

    【解决方案2】:

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

    为了可读性,我通常不喜欢在同一语句中使用命名空间(将其放在文件顶部的using 指令中),因为它通常可以节省空间,让我的行不会太长,这是不可否认的一个小小的好处。

    这些是我确实包含命名空间的时候:

    • 当我知道类名可能会被误解时,有时 .NET 中的不同命名空间中会使用一些类型,我希望代码的读者能够更快地理解我的意思

    • 当它是来自此命名空间的唯一调用时,有时我会显式包含命名空间。

    • 如果我要导入多个包含相同类型的命名空间。不过这个很明显。

    因此,无论这听起来是好是坏,答案都是“视情况而定”。无论使代码在更短的时间内更具可读性,都会获胜。

    http://gurustop.net

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-06
      • 1970-01-01
      • 1970-01-01
      • 2019-03-02
      相关资源
      最近更新 更多