【发布时间】:2018-06-08 02:11:54
【问题描述】:
我有一个 3X3 数组 byte[,] grid = new byte[3,3]; 并且可以在我的程序中正常访问它,但是当我尝试通过循环查找横向行的总数时,我得到一个错误“索引超出了数组的范围。”。我知道这意味着什么,但我不明白为什么我会得到它。
total = 0;
for (byte xy = 2; xy >= 0; xy-=1) {
total += grid[xy, xy]; //this is were i get the error
}
【问题讨论】:
-
byte未签名,因此它从0变为255。 -
字节无符号。所以当 xy 为零时,
xy - 1将是 255 -
>= 0应该是x > 0 -
因为字节是无符号的,
xy将永远是>=0。 -
将
>= 0更改为> 0将导致循环错过最后一次迭代grid[0, 0]
标签: c#