请教各位高手,下面语句为什么编译错误:
int[] myArray = new int[4];
myArray ={1,2,3,4};
但是这句话是可以的:
int[] myArray = { 1, 2, 3, 4 };

解决方案 »

  1.   


    myArray =new int[]{1,2,3,4};
      

  2.   

    int[] myArray;
    myArray = new int[4]{1,2,3,4}; 
    数组声明看一下书
      

  3.   

    1)不使用new 关键字的数组初始化
    int[] myArray = {1,2,3,4}
    2)使用new 关键字的数组初始化
    int[] myArray = new int[] {1,2,3,4}
    3)使用new 关键字和大小的数组初始化
    int[] myArray = new int[4]{1,2,3,4}
      

  4.   

    可是为什么???
    int[] myArray = { 1, 2, 3, 4 };
    此时{1,2,3,4}不用加new int[4]是可以的int[] myArray = new int[4]; 
    myArray =new int[4]{1,2,3,4}; 
    此时{1,2,3,4}不用加new int[4]编译失败。
    这两种有什么区别
      

  5.   

    {1,2,3,4}不是默认数组吗?为什么要显示申明为new int[4]{1,2,3,4}?
      

  6.   

    int[] myArray = { 1, 2, 3, 4 }; 
    这个直接初始化语法这么规定的int[] myArray = new int[4]; //声明数组,为其分配空间,要对成员初始要单个
    myArray[0]=1;
    myArray[1]=2;
    myArray[2]=3;
    myArray[3]=4;
      

  7.   


    这是语法,,规定不能想当然。
    int[] myArray = { 1, 2, 3, 4 };   //是初始化的简单写法,省去 new关键字int[] myArray = new int[4]; 
    myArray =new int[4]{1,2,3,4};    已经new了,不能再new。
      

  8.   

    C#数组比较oop,很怪异,和C++不大一样,每次我用的时候都仔细查查资料才敢用,呵呵。