使用语句与命名空间路径?C#

Kyl*_*ven 20 .net c# namespaces using-statement

我最近停止使用,而是使用我调用的任何对象的完整命名空间路径.

例:

using System;    

namespace QuizViewer
{
    class Class1
    {
        Console.WriteLine("Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

这就是我现在所做的.

namespace QuizViewer
{
    class Class1
    {
        System.Console.WriteLine("Hello World!");
    }
}
Run Code Online (Sandbox Code Playgroud)

在你问为什么我这样做之前,我正在使用这种风格,以便我可以准确地看到我的对象来自哪里,并且在使用不同的Timer对象和具有相似名称的其他对象时更容易.

这种编程风格是否有任何性能提升或降低?

Mic*_*tum 37

没有性能差异,因为编译器总是输入全名 - 使用只是编译器的提示,运行时不知道或不支持.

但是,一旦你记住对象来自哪里,你会认为这是愚蠢和冗长的.噪音很大,人们只知道Path来自System.IO,Console在System中,而StringBuilder在System.Text中.

您的方法的一个缺点:不使用,当前命名空间之外没有扩展方法.玩得开心System.Linq.Enumerable.Where(inputSequence,...)而不仅仅是inputSequence.Where(...):)


Ava*_*vra 6

简答回答:它与编译的代码相同.


pla*_*ton 6

我认为这种风格导致程序员性能下降:).我使用using语句,通常从代码中可以清楚地知道类所属的命名空间.如果没有,请按F12.
只是我的2c.

  • 只想继续...从我的角度来看,在C#中使用_var_而不是声明一个强类型变量真的是一个糟糕的样式代码...... (3认同)
  • 在C#中使用var的@platon不会阻止变量强类型化.从[MSDN](http://msdn.microsoft.com/en-us/library/bb384061.aspx) - "重要的是要理解var关键字不代表"变体",并不表示变量是松散类型或后期绑定.它只是意味着编译器确定并分配最合适的类型." (3认同)
  • 将鼠标悬停在“ Timer”类型名称或其实例上可以查看完整的类型名称。 (2认同)

Dan*_*ann 5

对性能没有影响;这主要是一种风格选择。我发现使用using语句可以减少混乱。另外,借助Intellisense,可以很容易地看到完全限定的名称空间。


Ran*_*ric 5

唯一的性能打击,就是您用它来打字,以及与您或其他人一起阅读它.

使用语句有助于提高可读性,而不是真正的性能.