在C#程序中,没有全局变量的概念,这意味着所有的成员变量只有该类的实例才能操作这些数据,这起到了“信息隐藏”的作用。但有些时候,这样做却不是个明智的选择。C#中静态变量——它在类中类似全局变量,保存类的公共信息,所有该类(而非对象或实例)共享该值。
public class Singleton { private static Singleton instance; private Singleton() { } public static Singleton GetInstance() { if (instance == null) { instance = new Singleton(); } return instance; } }
二 C#中类的初始化顺序:
1. 先变量后构造函数。
--变量先被初始化,然后构造函数被执行
2. 先静态化后实例化。
--当一个类被访问时,静态变量和构造函数最先被初始化.接着是对象的实例化变量和构造函数被初始化
3. 派生类和基类初始化顺序
a. 对于变量和静态构造函数先派生类后基类。
--其派生对象在基对象之前被初始化.比如C类派生自B类,B类派生自A类,那么变量和静态构造函数被初始化次序是C-B-A.
b.对于实例构造函数则相反,先基类再派生类
--基类构造函数在派生类构造函数之前执行,比如C类派生自B类,B类派生自A类,那么实例构造函数被执行次序是A-B-C.
再看静态static及相关知识汇集,布布扣,bubuko.com
原文:http://www.cnblogs.com/bile/p/3809900.html