在C#中声明数组的时候只要长度不是0;
若在程序中通过从数据库读取数据存到该数组中,那么这数组的长度竟然可以随之改变(包括越界的情况也会消失),请问这是为什么了????????????????

解决方案 »

  1.   

    System.String
    System.Array 
    都是 immutable 的
      

  2.   

    如果数组的长度不固定,那么就要改教科书了。
    int[] a=new int[5];
    a=GetInt(6);int[] GetInt(int count)
    {
    return new int[count];
    }
    类似上面的代码是让a的引用指向了另一个数组,新数组的长度自然可以跟原数组不一样了。
      

  3.   

    这个和
    int[] a=new int[5];
    a=new int[7];
    的道理是一样的。 
      

  4.   

    ArrayList动态一维数组命名空间 System.Collection