ArrayList可以实例化,可是为何Array不能实例化呢?这样可以ArrayList animalArrayList = new ArrayList();
但是这样不可以Array animalArrayList = new Array();

解决方案 »

  1.   

    public abstract class Array看看定义。一定要是他的子类才可以。
      

  2.   

    1、Array的用法与数组几乎一样,可以看做是数组。在定义的时候需要指定长度;ArrayList的用法与普通集合一样,定义的时候不需要指定长度;当然,Array是抽象类,不能直接实例化,但是继承自它的子类可以实例化。
    解释:Array是抽象类不能直接实例化 :Array arr = new Array()是错误的。正确的是实用要具体到他的子类。比如string[] int[] 等等。2、Array对象在获得元素个数时通过数组的获得方式(Length属性):animalArray.Length;ArrayList对象在获得元素个数时通过集合的获得方式(Count属性):animalArrayList.Count;3、为Array对象赋值时,通过下标的访问方式:animalArray[1] = new Chicken("鸡鸡一");Array对象通过集合添加的方式赋值:animalArrayList.Add(new Chicken("鸡鸡二"));4、Array类型的变量在声明的同时必须进行实例化(至少得初始化数组的大小),而ArrayList可以只是先声明。
    int[] array = new array[3];
    或 int[] array = {1,2,3};
    或 ArrayList myList = new ArrayList();
    这些都是合法的,而直接使用 int[] array;是不行的。5、Array只能存储同构的对象,而ArrayList可以存储异构的对象。
    同构的对象是指类型相同的对象,若声明为int[]的数组就只能存放整形数据,string[]只能存放字符型数据,但声明为object[]的数组除外。
    而ArrayList可以存放任何不同类型的数据(因为它里面存放的都是被装箱了的Object型对象,实际上ArrayList内部就是使用"object[] _items;"这样一个私有字段来封装对象的)6、 初始化大小
    Array对象的初始化必须只定指定大小,且创建后的数组大小是固定的,
    而ArrayList的大小可以动态指定,其大小可以在初始化时指定,也可以不指定,也就是说该对象的空间可以任意增加。通过ArrayList.Capacity更改ArrayList的大小。还可以通过 通过ArrayList类的TrimToResize()方法可以将ArrayList实例中的空项去除以压缩体积7、Array不能够随意添加和删除其中的项,而ArrayList可以在任意位置插入和删除项。
     
      

  3.   

    Array是抽象基类,实例化它的派生类即数组
    ArrayList类实现可变数组
      

  4.   

    Array arr = Array.CreateInstance(typeof(string), 10);
    for (int i = 0; i < arr.GetLength(0); i++)
    {
        arr.SetValue("字符串" + i.ToString(), i);
    }
    Console.WriteLine(arr.GetValue(0));
    这样可以创建,也可以string[]。
    语法看不懂的对照看看msdn.
      

  5.   

    ArrayList  是一个类所以可以实例化
    List 是个接口  所以不能实例化
      

  6.   


    不好意思  看错了 
     把 Array  看成 List