1).在C#中,数组是引用类型。C#的数组类型比较灵活,可以在声明数组时不进行初始化,这样以后就可以动态地 指定其大小。利用这种技术,可以创建一个空引用,以后再使用new关键字把这个引用指向请求动态分配的内存位置。
例如:int[] Integers;
Integers = new int[32];
同时,在c和C++中,数组的一个优点是可以在花括号中为数据提供一组初始值的硬编码列表。C#保留了这种方便的特性:
string[] String={"first element","second element","third element"};
在C#中,等价于:
string[] String=new string[] {"first element","second element","third element"};
在初始化数组时,有几个应避免的问题。例如:
一、不能用变量设置数组应包含多少个元素
int len = 3;
string[] String = new string[len] {"first element","second element","third element"}; //错误
正确的声明:const int len = 3;
二、如果希望数组的长度是动态变化的,或者数组在运行期间其长度会增加。就必须创建ArrayList对象的一个实例,该对象在System.Collections名称空间上。
三、类也可以保存在数据中,具体可见(A 为一个类)
static void Main(string[] args)
{
A[] ab;
ab = new A[3]; //只是分配空间
ab[1] = new A(); //实例化,即构造函数执行
Console.WriteLine(ab[1].a);
Console.ReadLine();
}
四、因为数组本身也是类,如果数组的元素是预定义类型,则可以使用Sort方法把数组按升序排列。
Array.Sort(string) //string为数组名
也可以使用System.Array.Sort方法和Icompare接口给数据排序。