如果类实例需要共享一片内存(如集合) 该怎么实现呢?
答案是使用Static成员和Static构造函数,Static成员就不用说了,它是属于类的东西,各实例都能共享到的东西,如果这个成员是一个集合的话就需要Static构造函数来初始化它,Static构造函数在CLR载入类时就会被调用.
如下:
public class Sample
{
private static Hashtable ganzhiHt;
...
static Sample()
{
//---干支部分-------------------
ganzhiHt = new Hashtable();
ganzhiHt.Add("壬申", 7);
ganzhiHt.Add("甲申", 5);
ganzhiHt.Add("丙申", 5);
ganzhiHt.Add("戊申", 14);
ganzhiHt.Add("庚申", 8);
.....
}
}
这样,创建Sample的实例时就不会创建多个ganzhiHt了,节省了空间,尤其是加快了速度.