为什么我的阵列被翻转?

时间:2013-09-03 18:12:24

标签: c# arrays rotation flip

            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结束。

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

2 个答案:

答案 0 :(得分:5)

将数组视为宽度和高度令人困惑。测量从最外层开始。

你的外部尺寸为12,内部尺寸为6.因此12 x 6.这就是它的工作方式。

答案 1 :(得分:1)

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

恰好第一维中数组的长度为12,第二维中数组的长度为6,因此它是一个12x6数组。你和我通常认为第一个维度为'width'而第二个维度为'height'这一事实与编译器无关。