[,] 2d数组和[] []之间是否有任何功能差异?

时间:2016-07-09 11:39:38

标签: c# arrays

这两个阵列可以相互通信,还是需要相同类型,即[,]只能与其他[,]数组通信。

或者如果我有:

char [,] 2darray =new char [2,2];

是否可以将其值传递给具有2d数组的方法,如:

Shirts(char [][] sizes)

这是伪代码,例如我只是真的只是想知道这种类型的数组调用的差异是否存在,以及它们是否可以相互通信。

1 个答案:

答案 0 :(得分:4)

这两种类型不同。它们在记忆中有不同的表现形式,因此它们不可互换。

要求2D数组char m[,]具有相同大小的行,并且所有行都必须存在。相反,数组char m[][]的数组允许有可变长度的行,甚至是一些缺少的行。

数组数组的元素是一个数组,您可以将其作为单独的实体传递。 2D阵列是一个单元;它的索引器运算符需要每个维度的索引。换句话说,你可以这样做

char m[][] ...
char r[] = m[2]; // Allowed

但你不能这样做

char m[,] ...
char r[] = m[2]; // Does not compile