c# Using指令会影响对象的大小吗?

本文关键字:对象 Using 指令 影响 | 更新日期: 2023-09-27 18:02:27

换句话说,以下内容有什么区别吗?

:

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

c# Using指令会影响对象的大小吗?

No。using仅仅是关于您可以在出现using声明的源文件中使用哪些简单名称。

基本上,using N;对编译器说:"嘿,如果我在这个源文件中输入简单的名称Foo,你在作用域中找不到任何名为Foo的东西,你能检查名称空间N中是否有名为Foo的东西吗?"谢谢!

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

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

根据以上解释,没有

using指令只是一种不必限定类的方法。所以你可以用

代替System.Console.Beep()
using System;
Console.Beep()

但是,项目中包含的引用的程序集确实会增加总体二进制大小。