静态构造函数在两种情况下会执行:
1,开发人员添加与 C# 中的类型具有相同名称的静态、无参数方法,来显式添加静态构造函数。
2,类型具有一个用于静态字段的初始值设定项,在这种情况下,编译器会在后台添加静态构造函数。
第一种情况会导致代码性能变差,微软建议在声明静态字段的位置对其进行初始化。
对生成的代码进行反编译发现:
1里运行库为了在精确时间运行类型初始值设定项而执行的检查会增加循环内的开销。
1比2带来性能的下降,换取的好处是静态变量将在精确的可以预料到的时间被初始化。
很少有类会真正需要静态构造函数在一个精确的时间执行,因此在大多数情况下,
避免显式静态构造函数就非常有意义。