为什么我的静态构造函数只执行一次?

Kri*_*zzu -4 c# static static-members

当我static在班上有一个字段时:

public static int Counter = 0;
Run Code Online (Sandbox Code Playgroud)

使用static构造函数:

static Class() { 
    Counter++; 
}
Run Code Online (Sandbox Code Playgroud)

当我创建这个类的对象并检查Class.Counter它显示我1是正确的.

但是当我创建同一个类的另一个对象时,Class.Counter仍然存在1.

这是为什么?

Sel*_*enç 10

因为静态构造函数只执行一次.

来自C#规范:

类的静态构造函数在给定的应用程序域中最多执行一次.静态构造函数的执行由应用程序域中发生的以下第一个事件触发:

  • 创建了一个类的实例.
  • 引用该类的任何静态成员.

  • 为什么静态构造函数只执行一次? - >因为静态构造函数只执行一次.很好的答案.:) (2认同)