如果我有这样的类型:
public struct Effect
{
public int Value { get; set; }
public static int MinValue = Int32.MinValue;
}
MinValue
只会初始化ONCE,就像执行静态构造函数一样?或者我应该在静态构造函数中初始化MinValue
吗?
classes
答案 0 :(得分:4)
是的,它会在静态构造函数执行之前初始化一次。参考类型(类)相同。
答案 1 :(得分:4)
是的,每个进程(应用程序域)只会初始化一次。
答案 2 :(得分:3)
它将被执行一次,但不会完全,就好像它是在静态构造函数中一样。有关何时执行类型初始值设定项的规则是different when a type has a static constructor。请注意观察到的行为changed a bit in .NET 4.0。通常你不需要担心这一点。
据我所知,类和结构之间的类型初始化没有区别。
请注意,您的MinValue
字段是公开的,可写 - 这是不是意味着?这似乎是一个坏主意。