请教个奇怪的问题,
定义了一个类,类有默认构造函数,并下断点。
如果myclass testclass = new myclass(),可以进入断点,并且正常。
如果myclass[] classarray = new myclass[10];
那么构造函数不执行,所以执行完上一句后classarray每个实例都是null!

解决方案 »

  1.   

    晕 myclass[] classarray = new myclass[10]; 这只是初始化数组。元素的初始化要自己做。for(int i=0; i<classarray.Length; i++)
       classarray[i] = new myclass();
      

  2.   

    数组里每个当然是null。你只是声明了存在这样的一个数组,但实际并没有分配值给数组啊你这个是数组问题,跟类没有任何关系数组
    值类型会初始化相应的值,比如整数那就都是0
    引用类型只会是null
      

  3.   

    myclass[] classarray = new myclass[10];
    执行后,产生指向null的10个myclass引用,不会实例化任何myclass对象的
      

  4.   

    是的,是这样的。
    myclass[] classarray = new myclass[10],只是定义了一个长度为10,引用类型为myclass的数组,你并没有为数组中每一个引用创建实例,也就是说他们现在都是时空引用。
    如果需要实例化它们:for(int i = 0; i < 10 ; i++)
    {
    classarray [i] = new myclass();
    }
      

  5.   

    classarray定义在栈上的引用,它指向一个堆上个数为10,类型为myclass的数组,但数组中的每一个对象都是类类型(引用类型),要对每个对象进行初始化。