struct TestStruct
{
static TestStruct()
{
Console.WriteLine("TestStruct");
}
}
在结构中调用静态无参数构造函数时。
答案 0 :(得分:7)
明确地 但是安全地(仅限一次,无需担心它是否存在等):
System.Runtime.CompilerServices.RuntimeHelpers.RunClassConstructor(
type.TypeHandle);
然而:
在结构中调用静态无参数构造函数时。
如果您的意思是“运行时何时执行它” - 唯一安全的答案是,当它需要时 - 确切的细节非常复杂,并且在运行时之间进行更改。依赖于此的确切时间是不明智的。但是,保证在您(例如)尝试访问任何静态字段之前执行。
答案 1 :(得分:0)
运行时会自动调用静态构造函数。
规范详细说明:
11.3.10静态构造函数
触发了结构类型的静态构造函数的执行 在应用程序中发生以下第一个事件 域:
引用了struct类型的静态成员。 一种 显式声明了struct类型的构造函数。
在 创建结构类型的默认值(第11.3.4节)不会触发 静态构造函数。 (这方面的一个例子是。的初始值 数组中的元素。)