C#多级数组 奇怪的写法

2020-10-17 08:58发布

问题:

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

上述就是C#定义多级数组的写法!
这个写法很奇怪!!!

我本来想表达:
假设
obj=int[][,]
然后
obj[,,] 定义一个三维的obj数组

但C#实际表达的是:

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

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

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

回答1:

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

// 声明一个包含三个数字的数组
var arr = new int[3];

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

// 声明一个包含三个数组的数组,错误的写法
var arr = new int[][3];

为什么实际是这种写法:

// 声明一个包含三个数组的数组,正确的写法
var arr = new int[3][];

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

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

保持一致。



回答2:

你的問題是什麼



标签: c# 数组