关于静态类的执行顺序问题
Winform程序,创建一个静态类,用作全局变量的初始化。
程序启动时,偶尔会出现“类型初始值设定项引发异常”这样的提示,原因应该是因为该静态类的成员变量没有初始化完成,就被调用了。
请教各位前辈如何才能保证该静态类优先执行呀?谢谢
[解决办法]
注意,每个静态类,如果你不提供静态构造函数,编译器会自动添加一个
如果你加了,编译器则不加,结果就会有问题
例如
public class b{
static int a = 1;
static someobject = new .... ;
如果没有默认构造函数,这样写没有问题。
如果有,最好把这些初始化语句写在构造函数中。
[解决办法]
好好看看你代码,构造函数,静态值初始话,一个出现错误,调用其他的都会引发异常,你调用一个静态值时,对其他静态值也进行初始化.
[解决办法]
private static MyType _Abc;而不需要写到所在的class的static实例化方法中。
public static MyType ABC{
get{
if(_Abc==null)
{
_Abc = 得到初始化的ABC对象();
}
return _Abc;
}
}