C#创建数组解决方法

C#创建数组
[size=24px][/size]
 我想问一下 int [] a = new int[5];
                      Array a = Array.CreateInstance(typeof(string),5);
                      这两句本质的区别是什么啊,我现在学乱了。
------解决思路----------------------
Array.CreateInstance(typeof(string),5)这是一个静态方法,返回一个Array对象。你转到定义看看就知道了。
------解决思路----------------------
C#创建数组解决方法
为什么不可以你,有什么不好理解
int[] x = { };
Array.CreateInstance(typeof(int),0);
这两句有什么不一样?没有
int[] 就是个语法糖,下面还是Array
------解决思路----------------------
引用:
   其实我现在纠结的是Array  ,它本身是一个抽象的类啊,Array a =。。。。。,他怎么能够创建一个对象a呢?


Array.CreateInstance(typeof(string),5);这句话创建的只是继承自Array的一个具体的类,有可能就是ArrayList

这就跟IList<string> list = new List<string>()一样,难道你也问IList分明是个接口,为什么它就能创建呢?
------解决思路----------------------
   Array a1 = Array.CreateInstance(typeof(int),5);
   int [] a = new int[5];

a = (int [])a1 ;

我觉得本质上是一样的,Array 是基础,int数组只是其中一个实现而已。用Array.CreateInstance需要拆箱不划算,一般直接用数组实例就好。  
Array.CreateInstance 用在你不知道创建的数组类型时比较好,还有数组下标为自定义的时候比较好用,比如 a[-1] a[0]的需要时候

无需纠结,测试下会发现耗时区别不大。

------解决思路----------------------
一个是引用类型一个是值类型;抽象类也可以用于声明,具体用子类给她赋值就行。