使用命名空间与从命名空间显式调用类之间是否存在性能差异?

时间:2013-04-06 19:41:50

标签: c# performance

直接从命名空间类库而不是using命名空间显式调用方法是否有任何性能优势?

以下是我所指的情况的一个例子:

// using
using System.Configuration;
public class MyClass
{
    private readonly static string DBConn = ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
}

VS

//explicit
public class MyClass
{
    private readonly static string DBConn = System.Configuration.ConfigurationManager.ConnectionStrings["DBConn"].ConnectionString;
}

3 个答案:

答案 0 :(得分:5)

不,没有。

编译器会将对类的所有调用转换为使用完全限定名称。

这很容易在生成的IL中看到,使用任何反编译器。

答案 1 :(得分:3)

没有

编译器将为这两个代码生成相同的IL(Intermediate Language)。因此,在这一点上没有性能问题。

例如;

Console.WriteLine("Sample Code");

产生

ldstr       "Sample Code"
call        System.Console.WriteLine

System.Console.WriteLine("Sample Code");

产生

ldstr       "Sample Code"
call        System.Console.WriteLine

tl dr ;编译器将两个代码都转换为完全限定的类名

答案 2 :(得分:1)

这与运行时性能无关,因为它对编译器来说非常重要 编译器必须解析名称才能创建代码。这对他的运行时没有影响。