An array instance creation expression is used to create new arrays (§10).
ArrayCreationExpression:
newPrimitiveTypeDimExprsDimsopt
newTypeNameDimExprsDimsopt DimExprs:
DimExpr
DimExprsDimExpr DimExpr:
[Expression]Dims:
[ ]Dims
[ ]
An array creation expression creates an object that is a new array whose elements are of the type specified by the PrimitiveType or TypeName. The TypeName may name any reference type, even an abstract class type (§8.1.2.1) or an interface type (§9).
The type of the creation expression is an array type that can denoted by a copy of the creation expression from which the new keyword and every DimExpr expression have been deleted; for example, the type of the creation expression:
new double[3][3][]
double[][][]
The type of each dimension expression DimExpr must be an integral type, or a compile-time error occurs. Each expression undergoes unary numeric promotion (§5.6.1). The promoted type must be int, or a compile-time error occurs; this means, specifically, that the type of a dimension expression must not be long.