今天,我与我的同事进行了讨论,并总结了以下几点。如果一切都是正确的,或者需要进行一些修改,请投一些光。
。
发布于 2011-05-10 12:30:08
静态构造函数将给您一个小小的控制,当它被调用时会发生什么。
public class UtilityClass
{
//
// Resources
//
// r1 will be initialized by the static constructor
static Resource1 r1 = null;
// r2 will be initialized first, as static constructors are
// invoked after the static variables are initialized
static Resource2 r2 = new Resource2();
static UtilityClass()
{
r1 = new Resource1();
}
static void f1(){}
static void f2(){}
}4.静态构造器速度慢
静态构造函数执行的确切时间取决于实现,但受以下规则的约束:
类的静态构造函数在创建类的任何实例之前执行。类的静态构造函数在类的任何静态成员之前执行。
类的referenced.
未指定不同的类。
发布于 2011-05-10 12:55:12
你所有的观点都是正确的。
应该避免静态构造函数的原因是编译器在任何地方注入代码--任何调用该类的方法都是为了检查是否调用了静态构造函数。这对业绩有负面影响。
您可以做的是在类中有一个私有静态字段,在调用默认(或其他非静态)构造函数时为其分配一个虚拟值。这将初始化对象创建时的所有静态字段。
https://stackoverflow.com/questions/5949889
复制相似问题