直接从命名空间类库而不是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;
}
答案 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)
这与运行时性能无关,因为它对编译器来说非常重要 编译器必须解析名称才能创建代码。这对他的运行时没有影响。