.Net Framework的推出改变了开发人员以前的编程习惯。为开发人员提供了一个功能非常强大的开发环境。.Net Framework数组是分配在托管堆上的引用类型,并且应用程序中的数组变量包含的是一个指向数组的引用,而非数组本身。#t#
C#支持交错数组
- Point[][] myPolygons = new Point[2][];
- myPolygons[0] = new Point[10];
- myPolygons[1] = new Point[30];
对于引用类型的.Net Framework数组,且维数相同,CLR允许它们进行类型转换。
CLR不允许将元素为值类型的数组转型为任何其他类型,但可以使用Array.Copy,创建一个新数组来达到期望的效果。
- Int32 [] music=new Int32[4];
- Object[] mymusic = (Object[]) music;
- //error
- Object[] mymusic=new Object[music.length]
- Array.Copy(music,mymusic,music.length);
- //Copy方法不仅能进行拷贝,而且还能在拷贝
每一个元素时进行相应的类型转换
Array.Copy方法执行的是浅拷贝,若源数组中的元素是引用类型,要获得一个深拷贝,则每个元素的类型都要实现Icloneable接口。
我们可以通过调用Array的静态方法CreateInstance来动态地创建.Net Framework数组。