我正在用C#做一个基本的2D数组,我有点困惑。
我更习惯于使用基于1的数组,所以如果你知道我的意思,基于0的数组会让我头疼。
blocks = new Block[15, 999];
for (int x = 0; x <= 15; x++)
{
for (int y = 0; y <= 999; y++)
{
blocks[x, y] = new Dirt(terrainTexture, new Vector2(x * 16, y * 16));
}
}
所以它告诉我,我已经超出阵列范围了?
如果数组来自
0-15,0-999
不应该是0-15,0-999的循环吗?
答案 0 :(得分:10)
不是。 999是数组的长度。因此,它是从0-998,当你循环它时,你应该养成使用“小于”而不是“小于或等于”的习惯 - 然后它会倾向于正确。
答案 1 :(得分:7)
你有15和999个元素,但由于数组是0索引的,这意味着它们分别从0-14和0-998运行。