1
            public const T = true;
            public static bool[,] MassMediumHorizontal = new bool[,]
            { 
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T},
            {T,T,T,T,T,T}
            };

大家可以看到,这个数组的宽度为 6,高度为 12。

当我编译它时,宽度和高度被翻转。

如果我在调试时放置一个断点(Visual Studio 功能),然后将鼠标悬停在变量的名称上,它会告诉我数组的大小,它会显示 12x6(宽度 x 高度)。


当然,如果我想得到相反的结果,那么我只需将原始数组制作为 12x6 并在编译后以 6x12 结束。

但为什么会发生这种情况呢?(编译后我不会旋转它)

4

2 回答 2

5

将数组视为宽度和高度会使事情变得混乱。测量从最外层开始。

你的外部维度是 12,内部维度是 6。因此是 12 x 6。这就是它的工作方式。

于 2013-09-03T18:14:48.313 回答
1

数组实际上没有“宽度”和“高度”的概念,尺寸是任意的。

恰好第一维数组的长度是12,第二维数组的长度是6,所以它是一个12x6的数组。您和我通常将第一个维度视为“宽度”,将第二个维度视为“高度”这一事实与编译器无关。

于 2013-09-03T18:17:01.657 回答