bad*_*ash 25 c# static
我想知道静态变量(在一个类中)何时进入图像(初始化)?它是在第一次调用实例构造函数之后还是在类加载之后?什么时候加载类?
Mar*_*ell 32
哦,这很复杂.这取决于是否beforefieldinit设置了标志,而这又是(在C#中)取决于是否存在静态构造函数.更糟糕的是; 在.NET 4中,我认为行为发生了变化,使其比以前更加"懒惰".
beforefieldinit
坦率地说,我不会在这里对任何具体行为进行编码; 简单地说:静态字段将在您尝试使用它们之前初始化,只要您使用常规代码来访问它们.
Jon Skeet在这里和这里都有很好的写作
归档时间:
15 年,8 月 前
查看次数:
12090 次
最近记录:
10 年,11 月 前