C#定义数组时,可以使用数组初始化器直接给数组赋值,数组初始化器只能在定义数组时使用。 数组初始化器使用一对{}表示。
1、具有长度的初始化器
具有长度的数组初始化器可以为具有长度的数组每个元素赋值,赋值时,所赋值的个数必须与长度值相同,不能多也不能少,如下:
int[] intA = new int[4]{1,3,6,9}
以上,定义了int类型的数组intA,并且使用new关键字初始化为长度为4的数组对象,然后又使用了数组初始化器给数组赋值。
由于这里初始化时指定了数组的长度为4,所以在数组初始化器中赋值时,只能赋4个值,值与值之间使用英文的逗号隔开。如果在初始化器所赋的值多了或少了都会出错。
2、自动统计个数的初始化器
对数组初始化时,如果指定了长度,则在赋值时也受到了限制,C#提供了自动统计个数的数组初始化器:
string[] strA = new string[]{"A","B"};
string[] strB = new string[]{"A","B","C"};
string[] strC = new string[]{"A"};
以上代码中,定义了string类型的数组,但在初始化时,没有指定长度,则在{}初始化器中就可以赋任意数量的值。
C# 编译器会自动统计值的个数,其实数组在后台还是有个数的,只是自动统计的。
3、直接赋值初始化器
随着C#版本的不断更新,C#的语法变的越来越简单,对于自动统计个数的初始化器,还有一种更简单的形式,就是直接赋值初始化器,如下: double[] priceA = {2.1,2.2}; double[] priceB = {2.1}; double[] priceC = {2.1,2.2,3.2};
以上代码,把new关键字省略了,在赋值号(=)后面直接使用花括号赋值,所赋值的个数不受限制。