我对 static 的理解

 

借着 深山老林 的 谈谈c#中的static 我也对 static 做了个小小的总结.

 

按我个人理解 static 关键字应用分为两部分 -- 静态类,静态成员.

静态类:静态类不能实例化(不允许有实例构造器),只能包含静态成员,密封的.静态类没有确定的实例化时间,MSDN上讲可以保证在程序中首次引用该类前构造它(调用静态构造器).CLR还提供了适当关键字来改变静态类构造时机.静态类一但构造将惯穿"全局"(程序的整个生存期).

静态成员:静态成员归所属类型所有,而不是实例,但任一实例都可共享它.因为它归类型所有,由此它不能访问实例成员.并且访问它只能通过类型名而非实例变量名.和静态类类似的是它也一但构造(指字段成员)将惯穿"全局"(程序的整个生存期).

使用:我没有"static惊恐症",相反有些时候我倒觉得基于static的特点它会提高性能.呵, 这么说也很片面(BS一下自己).其实我觉得还是要看具体应用了.就像某某牛人说的"枪在罪犯手里用来犯罪,但在士兵手里确是保卫国家"--好像是这么说的.. 恩恩,记不清了.. 

以上仅个人对 static 的理解, 错误之处还望指正..

posted @ 2009-12-19 10:40  爱吃鱼的d  阅读(473)  评论(0编辑  收藏  举报