13.07.2015 Views

C# Language Specification - Willy .Net

C# Language Specification - Willy .Net

C# Language Specification - Willy .Net

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

<strong>C#</strong> LANGUAGE SPECIFICATION8.2.3 Array typesArrays may be single-dimensional or multi-dimensional. Both “rectangular” and “jagged” arrays aresupported.Single-dimensional arrays are the most common type. The exampleusing System;class Test{static void Main() {int[] arr = new int[5];for (int i = 0; i < arr.Length; i++)arr[i] = i * i;for (int i = 0; i < arr.Length; i++)Console.WriteLine("arr[{0}] = {1}", i, arr[i]);}}creates a single-dimensional array of int values, initializes the array elements, and then prints each of themout. The output produced is:arr[0] = 0arr[1] = 1arr[2] = 4arr[3] = 9arr[4] = 16The type int[] used in the previous example is an array type. Array types are written using a non-arraytypefollowed by one or more rank specifiers. The exampleclass Test{static void Main() {int[] a1;// single-dimensional array of intint[,] a2;int[,,] a3;// 2-dimensional array of int// 3-dimensional array of intint[][] j2; // "jagged" array: array of (array of int)}int[][][] j3; // array of (array of (array of int))}shows a variety of local variable declarations that use array types with int as the element type.Array types are reference types, and so the declaration of an array variable merely sets aside space for thereference to the array. Array instances are actually created via array initializers and array creationexpressions. The exampleclass Test{static void Main() {int[] a1 = new int[] {1, 2, 3};int[,] a2 = new int[,] {{1, 2, 3}, {4, 5, 6}};int[,,] a3 = new int[10, 20, 30];int[][] j2 = new int[3][];j2[0] = new int[] {1, 2, 3};j2[1] = new int[] {1, 2, 3, 4, 5, 6};j2[2] = new int[] {1, 2, 3, 4, 5, 6, 7, 8, 9};}}shows a variety of array creation expressions. The variables a1, a2 and a3 denote rectangular arrays, andthe variable j2 denotes a jagged array. It should be no surprise that these terms are based on the shapes ofthe arrays. Rectangular arrays always have a rectangular shape. Given the length of each dimension of thearray, its rectangular shape is clear. For example, the lengths of a3’s three dimensions are 10, 20, and 30,respectively, and it is easy to see that this array contains 10*20*30 elements.20

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!