C#多级数组 奇怪的写法

int[][,][,,] a = new int[1][,][,,];

上述就是C#定义多级数组的写法!

这个写法很奇怪!!!

我本来想表达:

假设
obj=int[][,]

然后
obj[,,] 定义一个三维的obj数组

但C#实际表达的是:
C#多级数组 奇怪的写法

通过
a.GetType().Name 得到的结果是:Int32[,,][,][]

对C#表示无力吐槽!!!

哪个大佬能解释一下C#为什么这么设计?

回答

你这说的不清不楚的

你是不是觉得 声明一个数组就是在类型后面加方括号,像这样

// 声明一个包含三个数字的数组

var arr = new int[3];

然后声明数组的数组应该是再往后加方括号

// 声明一个包含三个数组的数组,错误的写法

var arr = new int[][3];

为什么实际是这种写法:

// 声明一个包含三个数组的数组,正确的写法

var arr = new int[3][];

为什么顺序反过来了对吧?因为他的逻辑根本就是多维数组的逻辑,按照第一维第二维第三维这样的顺序排的,这个语法顺序跟

var arr = new int[3,4,5];

保持一致。

以上是 C#多级数组 奇怪的写法 的全部内容, 来源链接: utcz.com/a/60905.html

回到顶部