如何声明并实例化包含数组的矩阵?验证Color[,][]类型矩阵实例化代码的正确性
你的修改方向完全正确,但别忘了补充初始化步骤!
没错,把代码改成Color[,][] map_clrs = new Color[8,8][]刚好能匹配你想要的数据结构,我给你拆解下细节:
原来的写法错在哪?
你最初的代码Color[][,] map_clrs = new Color[64][ 8, 8 ];定义的是:
- 一个长度为64的一维数组
- 数组里的每个元素是一个8×8的Color二维矩阵
这和你想要的“8×8矩阵,每个元素是长度64的Color数组”结构完全颠倒了。
修改后的写法为什么符合需求?
Color[,][]的结构逻辑是:
- 最外层是8×8的二维矩阵(对应
[,]的维度) - 矩阵中的每个位置,都对应一个
Color[]一维数组(也就是你需要的长度64的Color集合)
完全贴合你给出的示例结构。
关键补充:必须初始化每个Color数组
只写new Color[8,8][]只是创建了8×8的矩阵框架,每个位置的Color[]还是null,得通过循环把每个位置的数组初始化出来:
Color[,][] map_clrs = new Color[8,8][]; // 遍历8×8矩阵的每一个位置 for (int row = 0; row < 8; row++) { for (int col = 0; col < 8; col++) { // 给当前位置初始化一个长度为64的Color数组 map_clrs[row, col] = new Color[64]; // 如果需要给数组元素设置默认值,还可以在这里继续赋值,比如: // map_clrs[row, col][0] = Color.Red; } }
这样就能得到你期望的完整数据结构啦!
内容的提问来源于stack exchange,提问作者WouldBeNerd
相关产品推荐
相关产品推荐

