8.2.3 Array types(cont')

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值