换句话说,以下是否会产生影响:
这样:
using a;
using b;
using c;
public class foo {
public void doStuff() {
// do some stuff utilizing classes from a, b, and c.
}
}
对此:
public class foo {
public void doStuff() {
bar.doStuff();
}
}
与:
using a;
using b;
using c;
public static class bar {
public static void doStuff() {
// do some stuff utilizing classes from a, b, and c
}
}
假设foo是一个经常使用和传递的类,经常序列化/反序列化等等。但是doStuff()方法很少被调用。将它分解为上面的第二个/第三个片段是否有任何性能优势?
答案 0 :(得分:3)
没有。 using
仅仅是您可以在源using
声明中出现的简单名称。
基本上,using N;
对编译器说“嘿,如果我在此源文件中键入简单名称Foo
,并且在范围内找不到任何名为Foo
的内容,可以检查命名空间Foo
中是否有名为N
的内容?“谢谢!
也就是说,您可以不使用using
并通过它的完全限定名称引用所有内容,并且您根本没有更改编译器的IL输出。
将它分解为上面的第二个/第三个片段是否有任何性能优势?
根据上述说明,没有。
答案 1 :(得分:1)
using
指令只是一种不必限定类的方法。因此,您可以使用
System.Console.Beep()
using System;
Console.Beep()
但是,项目中包含的引用程序集会影响整体二进制文件的大小。