Java静态块是否等同于C#静态构造函数?

Mac*_*zie 12 c# java static-block static-constructor

C#静态构造函数和Java静态块之间的真正区别是什么?

它们都必须是无参数的.当首次使用相关类时,它们都只被调用一次.

我错过了什么,或者他们是同一件事,只是用不同的名字?

SLa*_*aks 9

它们是等价的,除了C#类只能有一个静态构造函数(加上静态字段初始值设定项).

此外,在C#中,static构造函数将应用该beforefieldinit标志.

  • 是的,但我的(不太明确,我承认)观点是:解释代码语义(即字段初始化和静态构造函数的顺序)方面的差异比实现细节更有用.(特别是当它的细节对于所考虑的两种语言之一甚至没有任何意义时.) (2认同)