8.2.3 Array types(cont')

王朝other·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

In contrast, the variable j2 denotes a .jagged. array, or an .array of

arrays.. Specifically, j2 denotes an

array of an array of int, or a single-dimensional array of type int[]. Each

of these int[] variables can be

initialized individually, and this allows the array to take on a jagged

shape. The example gives each of the

int[] arrays a different length. Specifically, the length of j2[0] is 3,

the length of j2[1] is 6, and the

length of j2[2] is 9.

[Note: In C++, an array declared as int x[3][5][7] would be considered a

three dimensional rectangular

array, while in C#, the declaration int[][][] declares a jagged array type.

end note]

The element type and shape of an array.including whether it is jagged or

rectangular, and the number of

dimensions it has.are part of its type. On the other hand, the size of the

array.as represented by the length

of each of its dimensions.is not part of an array.s type. This split is

made clear in the language syntax, as

the length of each dimension is specified in the array creation expression

rather than in the array type. For

instance the declaration

int[,,] a3 = new int[10, 20, 30];

has an array type of int[,,] and an array creation expression of new

int[10, 20, 30].

For local variable and field declarations, a shorthand form is permitted so

that it is not necessary to re-state

the array type. For instance, the example

int[] a1 = new int[] {1, 2, 3};

can be shortened to

int[] a1 = {1, 2, 3};

without any change in program semantics.

The context in which an array initializer such as {1, 2, 3} is used

determines the type of the array being

initialized. The example

class Test

{

static void Main() {

short[] a = {1, 2, 3};

int[] b = {1, 2, 3};

long[] c = {1, 2, 3};

}

}

shows that the same array initializer syntax can be used for several

different array types. Because context is

required to determine the type of an array initializer, it is not possible

to use an array initializer in an

expression context without explicitly stating the type of the array.

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
 
 
© 2005- 王朝網路 版權所有 導航