日期:2014-05-18 浏览次数:20780 次
public class Test { private List<string> data = new List<string>(); public Test(){}; }
public class Test { private List<string> data; public Test() { data = new List<string>(); } }
(在家没有编译器,以下说法纯凭理论记忆,如果结果错误,请无视我的回复,不要被误导)
------解决方案--------------------
视频教程地址
http://www.enet.com.cn/eschool/video/c/10.shtml
------解决方案--------------------
楼主有点抠的太细了吧,觉得这样抠没什么必要。
两种方法在维护性和扩展性上都一样。
在底层机制上不过是类成员在哪里初始化的不同。
第一种对成员的初始化在时间上,是先于第二种在构造函数中初始化成员的。
这两种方法对内存的占用应该是一样的。
------解决方案--------------------
占用空间我认为是一样的。
但从维护性上我认为第二种要略优于第一种。
原因如下:
当对一个类初始化的时候有可能会出异常(当然了,List类可能不会),如果要捕获异常的话就只能使用第二种方法了。
学习中,如果我理解有错误请大家指出。
------解决方案--------------------
效果 几乎一样。
第一种好点,只有一条语句,声明即赋值,快一点, 对开发者来说,直接点,更快读懂语句!
------解决方案--------------------
就lz这个代码而论,前者更好。
------解决方案--------------------
我认为第一种好,首先他们效果都是一样的。
但第一种语句简短,维护起来方便,不用去找他实例化的地方,而且如果说你类中还有待参数的构造函数,那就有多个实例化语句的代码。
如果实例化代码比较集中而当初就有实例化,性能应该会比较好(基本感觉不到,太钻牛角尖了)。
所以我认为说第一种比较好。
------解决方案--------------------