简而言之,我想知道是否有办法延迟类中静态字段的初始化。
在设置其他值之前,我无法创建某个类的实例。一个例子:
private void Form1_Load(object sender, EventArgs e)
{
Foo.Init();
// initialize static Bar fields
}
下面,Bar
个实例需要在Foo.Init()
中设置一些值。
public static class Bars
{
public static Bar bar = new Bar();
}
自Bar
执行Foo.Init()
之前public static class Bars
{
public static Bar bar;
public static void Init()
{
bar = new Bar();
}
}
字段实例化后,这项工作无法完成。
我能想到的唯一解决方案就像是
Bars.Init()
并在Foo.Init()
之后运行{{1}}。
这是解决问题的唯一方法吗?
答案 0 :(得分:1)
你可以使用静态构造函数 init 静态类:
public static class Foo
{
public static int Result { get; set; }
static Foo()
{
Result = -1;
}
}
了解更多Here
答案 1 :(得分:0)
类似的东西:
private static Bar bar;
public static Bar Bar
{
get
{
bar = bar ?? new Bar();
return bar;
}
}