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

时间:2011-07-08 18:07:09

标签: c# .net namespaces using-statement

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

示例:

using System;    

namespace QuizViewer
{
    class Class1
    {
        Console.WriteLine("Hello World!");
    }
}

这就是我现在所做的。

namespace QuizViewer
{
    class Class1
    {
        System.Console.WriteLine("Hello World!");
    }
}

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

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

6 个答案:

答案 0 :(得分:34)

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

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

您的方法的一个缺点:不使用,当前命名空间之外没有扩展方法。尽情享受System.Linq.Enumerable.Where(inputSequence,...)而不仅仅是inputSequence.Where(...)的乐趣:)

答案 1 :(得分:5)

简短回答否:它与编译的代码相同。

答案 2 :(得分:5)

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

答案 3 :(得分:5)

唯一的性能打击,就是用来打输它的所有打击,以及与你或其他人一起阅读它。

使用语句有助于提高可读性,而不是性能。

答案 4 :(得分:4)

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

答案 5 :(得分:0)

如果您反汇编这两段代码并查看IL代码,您会发现编译器总是通过它的全名引用所有类型。这与操作类型完全相同。