class1 ca = new class1(); 和 
class 1 ca; 
ca = new class1();这俩种方式有什么区别请具体说明

解决方案 »

  1.   

    class1 ca = new class1(); // 声明对象并分配了内存。
    接下来你可以访问ca的成员了 
    class 1 ca; //只是声明, 没有分配内存,是一个空引用。
    此时要是访问CA的成员将出现NULLOBJECT EXCEPTION 
    ca = new class1(); //分配内存。接下来可以访问ca的成员了
      

  2.   

    class1 ca = new class1(); 实例化对象,分配空间
    class 1 ca; 只声明对象
      

  3.   

    class1 ca = new class1(); 是
    class 1 ca; 
    ca = new class1(); 
    这个的简写,其实没什么区别
      

  4.   

    class1 ca; 
    它仅是一个引用(指针),保存在线程的堆栈上,占用4Byte的内存空间,将用于保存class1对象的有效地址,其执行过程正是上文描述的在线程栈上的分配过程。此时aUser未指向任何有效的实例,因此被自行初始化为null,试图对aUser的任何操作将抛出NullReferenceException异常。
    ca = new class1();
    通过new操作执行对象创建.我是通过变通得到的
    王涛 微软C# MVP 专家解释