日期:2014-05-20  浏览次数:20881 次

C#类中先申明后定义与直接定义的区别
在C#类中,直接在类中new出实例,和先在类中申明变量,再在构造函数中new出实例,这两者在内存分配上有什么区别?
高手指教!谢谢!

------解决方案--------------------
D 学习...............
------解决方案--------------------
没有区别
------解决方案--------------------
前者:是声明对象并且同时分配内存空间,而后者是要到构造函数的时候才分配内存空间
------解决方案--------------------
分配的地址可能不一样
C#不要去管内存分配 这是MS不希望看到的
------解决方案--------------------
我记得是先声明不分配内存,引用时系统才分配内存;
直接定义则直接分配内存空间.
------解决方案--------------------
应该是一样的,但最好都写在构造函数中,看的清楚。
------解决方案--------------------
TO:在C#类中,直接在类中new出实例,和先在类中申明变量,再在构造函数中new出实例,这两者在内存分配上有什么区别?

for example:

public class Test
{
private ArrayList list=new ArrayList();
}
虽然在声明的时候已经new了,但是实际上是在创建对象Test对象实例时在构造函数中创建的ArrayList的实例...

即上面的等价于:

public class Test
{
private ArrayList list;
public Test()
{
list=new ArrayList();
}
}