有来有趣 发表于 2012-10-20 01:01
静态成员在编译时已经分配内存了。
静态类仅能包含静态成员,而且静态类不包含实例构造函数(也即不能被实 ...
MSDN的解释肯定是权威的,但是我想知道怎么去测试它。比如装箱和拆箱可以用IL反编译直观的看出来,这里引用一下我对静态类的理解和为什么想要得知静态类在什么时候销毁。
什么时候用静态类,什么时候用非静态类,有什么区别意义?
我的理解:
静态类:当系统中有公共类的时候,可以把这个公共类声明为静态类,静态类成员直接用类调用,在调用时执行静态构造函数,此时得到一个实例。我猜静态类应该是在程序结束后销毁吧(明天看怎么测试下),如果正如我猜想的那样,那么好处就是这个程序从始至终都只有一个实例。
非静态类:当系统中需要用到该类的多个实例时,就使用非静态类。好处是多个实例之间互不影响。
从字面意义的理解,静态:静止的状态,不会产生变化,所以只有一个实例。非静态(又称实体类):非静止的状态,会产生变化,所以可能会有多个实例。 |