|
看来真不错,变聪明了,只分配了一次m_connString的内存空间,只初始化了一次m_connString. 看来多亏了static. 注意:这里应该引起你的关注. 有一些朋友的代码中时常出现为值类型成员赋0,为引用类型赋null public class Person//人类 { private int _age = 0;//年龄 } 或者 public class Person//人类 { private Address _address = null;//地址对象 } 这其实是无必要的,和上面new SqlHelper()的构造过程一样.在分配数据成员的内存空间时,便会为值类型成员赋0,为引用类型赋null.如果我们显示的赋值的话,不但没有任何帮助,反而会增加指令的操作,影响效率. Effective C# 中有介绍 其实上面主要的知识点是对象的构造过程,让我们来复习一下吧. 第一种: 1.当我们调用类里的静态方法时,如果类里面的静态成员还未初始化,那么这个类的所有静态成员依据在类里面出现的次序初始化. 2.为静态成员分配内存空间,此时空间存储数据为0或null 3.执行静态成员的初始化语句(也就是赋值语句) 4.执行类的静态构造函数 很明显,这样的话如果我们第二次调用类里的静态方法时,1,2,3,4都不会被执行了. |