c#Using Directive会影响对象大小吗?

时间:2011-07-19 15:36:47

标签: c#

换句话说,以下是否会产生影响:

这样:

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()方法很少被调用。将它分解为上面的第二个/第三个片段是否有任何性能优势?

2 个答案:

答案 0 :(得分:3)

没有。 using仅仅是您可以在源using声明中出现的简单名称。

基本上,using N;对编译器说“嘿,如果我在此源文件中键入简单名称Foo,并且在范围内找不到任何名为Foo的内容,可以检查命名空间Foo中是否有名为N的内容?“谢谢!

也就是说,您可以不使用using并通过它的完全限定名称引用所有内容,并且您根本没有更改编译器的IL输出。

  

将它分解为上面的第二个/第三个片段是否有任何性能优势?

根据上述说明,没有。

答案 1 :(得分:1)

using指令只是一种不必限定类的方法。因此,您可以使用

而不是System.Console.Beep()
using System;
Console.Beep()

但是,项目中包含的引用程序集会影响整体二进制文件的大小。