C#中,Object[] arr = newObject[2];这句话实际上并没有为对象分配空间,实质上只是为arr分配了两个可以存放对象地址的空间(声明这个空间是用于存放何种类型的对象的),当实际上创建新的对象或把其他对象赋给数组中数据时,才真正让这个数组的数据完整存在。当然数值型数组,如int[] arrInt = new int[3];即使不赋初值也可以访问,托管内存上分配了存放int数据的空间。
例如
arr[0] =new Object();arr[1] = new Object();
或者假如arr1已经被赋值了,则 arr= arr1;(其中假如arr1中元素的个数小于arr中元素的个数,则arr数组中就不会填充满~,则未被赋值的元素是不能进行访问的)。
或者这个样子
for (int i = 0; i < arr.Length; ++i)
{
arr[i] = arr1[i];
}