数组是允许将多个数据项当做一个集合来出力的机制。
所有数组类型都是从System.Array继承,而System.Array从Object继承而来
数组相对简单,提供一些稍微注意的代码实例。
string[] name = new string[]{"xiaolu","xiaowang"};
//数组初始化器
//也可以
var names= new []{"xiaolu","xiaozhang"};
//还可以
string names = {"xiaolu","xiaowang"};
//注意的是:不允许
var names = {"xiaolu","xiaowang"};//错误【无法通过编译】
var kids = new []{new {Name = "xiaolu"},new {Name = "xiaowang"}};
c#数组支持协变【派生类—-> 基类】
FileStream[,] fs = new FileStream[5,10];
object[,] o2 = fs;
由于所有数组都是继承于System.Array
而System.Array
中有很多方便实用的函数【具体查询.netframework SDK】可供实用。
所有数组隐式实现IEnumeralbe,ICollection和IList
等接口、
可以通过 stackalloc
来在栈上为数组分配空间【只能创建一维0基,值类型元素构成的数组,并且值类型不能包含任何引用类型的字段】
unsafe{
const int width = 20;
char* pc = stackalloc Char[width];//在栈上分配
...
}
如果特别注意性能【可以考虑使用unsafe来去除对数组的越界检查】