C#数组初始化是指在定义数组时,将元素的值设置为特定的值。C#中有两种方法可以用来初始化数组:一种是使用new关键字,另一种是使用静态初始化。
使用new关键字来初始化数组时,必须提供数组的大小,并且可以选择性地提供要存储在数组中的值。例如,下面的代码声明了一个int型的数组,并将其大小设为5:
int[] array = new int[5];
上述代码声明了一个int型的数组,但是它并没有将任何值存储在该数组中。如果要将特定的值存储在该数组中,可以使用如下代码:
int[] array = new int[5] {1, 2, 3, 4, 5};
上述代码声明了一个int型的数组,并将其大小设为5。此外,它还将1、2、3、4、5这五个值存储在该数组中。
另外一种方法是使用静态初始化来初始化C#中的数据。使用此方法时不必提供大小信息,因此可以省略new关键字。例如:
int[] array = {1, 2, 3, 4, 5};
上述代表声明了一个int型的数据并将1、2、3、4、5这五个值存储在该數據中。此外,它也不需要我们手动设定大小信息。
数组表示特定类型的固定数量的变量。
在元素类型后面创建一个带方括号的数组。
例如:
char[] letterArray = new char[5]; // Declare an array of 5 characters
在元素类型后面创建一个带方括号的数组。
letterArray[0] = 'a';
letterArray[1] = 'e';
letterArray[2] = 'i';
letterArray[3] = 'o';
letterArray[4] = 'u';
Console.WriteLine (letterArray[1]); // e
我们可以使用for循环语句来遍历数组中的每个元素。
for (int i = 0; i < letterArray.Length; i++) {
Console.Write (letterArray[i]); // aeiou
}
数组的Length
属性返回数组中元素的数量。
创建数组后,无法更改其长度。
数组初始化表达式可以在一个步骤中声明和填充数组:
char[] letterArray = new char[] {'a','e','i','o','u'};
或简单为:
char[] letterArray = {'a','e','i','o','u'};
所有数组都继承自System.Array
类,为所有数组提供通用服务。
创建数组总是使用默认值预先初始化元素。
例如,考虑创建一个整数数组。因为int是一个值类型,所以分配1000个整数。
每个元素的默认值为0:
int[] a = new int[1000];
Console.Write (a[123]); // 0
当元素类型是值类型时,每个元素值将作为数组的一部分分配。
例如:
struct Point {
public int X, Y;
}
Point[] a = new Point[1000];
int x = a[500].X; // 0
如果Point
是一个类,创建数组将只分配10个空引用:
class Point {
public int X, Y;
}
Point[] a = new Point[10];
int x = a[5].X; // Runtime error, NullReferenceException
要避免此错误,请在实例化数组后显式实例化Point
值:
Point[] a = new Point[10];
for (int i = 0; i < a.Length; i++){ // Iterate i from 0 to 9
a[i] = new Point(); // Set array element i with new point
}
数组本身始终是引用类型对象,不管元素类型如何。
例如,以下是合法的:
int[] myArray = null;
C#参数方法可以具有参数序列。参数定义必须为该方法提供的参数集。在以下示例中,myMethod方法具有名为p的单个参数,类型为int...