C#数组代码

static void ArrayDemo() {    // 声明一个指向数组的引用    Int32[] ia; // 默认值为 null    ia = new Int32[100];    ia = new Int32[] { 1, 2, 3, 4, 5 };    .    .    . 这是一个具有数组的代码的例子,所以我会略为提一下。在这个例子里,首先声明一个指向Int32s数组的引用,随意取一个"ia"用于整数数组。它只不过是一个指针,具有32位(bit)或64位值,如果它们仍在64位系统上运行,总是会被初始化为null,引用总是被初始化为null直到明确地设置它为止。下面一行,我随意new(构造)了一个有100个Int32值的数组。new返回一个引用,接着我把这个引用存到"ia"变量中。下一行只不过演示了另外一种构造的方式,这里我又new了一个Int32s数组,这种专门的C#句法以一个左大括号开始,后面跟着数组的元素,当然元素之间要用逗号分开,然后是一个右括号。当您第一次见到这种句法时,会觉得它有点笨拙。这只不过是new的另外一种用法,当然它可以推算出元素的个数。 ROBERT HESS: 而这只不过是预定义了值:    .    .    .    // 显示数组的内容    foreach (Int32 x in ia)       Console.Write("{0} ", x);        //使用多维数组    StringBuilder[,] sa = new StringBuilder[10][5];    for (int x = 0; x < 10; x++) {       for (int y = 0; y < 5; y++) {          sa[x][y] = new StringBuilder(10);       }    }      // 使用数组的数组(jagged arrays)    Int32 numPolygons = 3;    Point[][] polygons = new Point[numPolygons][];    polygons[0] = new Point[3]  { ... };    polygons[1] = new Point[5]  { ... };    polygons[2] = new Point[10] { ... }; }   JEFFREY RICHTER:是的,很正确。这就是foreach,它出现在代码的第一行。"foreach"是C#句法,我肯定所有的.NET语言都会提供此句法,它是一个极其通用的编程典范,用这种方式,就可以遍历集合里的元素。因此,这里的foreach Int32 x中,"x"是一个变量,Int32当然是一种类型,接着我把引用赋予了数组。foreach将会自动推算出数组中有多少个元素,并且每当循环到Console.Write时,就会显示出元素的值,然后再移向下一个元素。
posted @ 2011-03-16 22:10  鱼翅粥  阅读(391)  评论(1编辑  收藏  举报