我的程序抛出索引超出范围异常我知道这个异常的原因假设...
my Programme is throwing Index out of range exception i know the reason for this exception suppose ...
int [] array = new int [100] array[0] =1; array[10] = 2; array[200] = 3;在这种情况下,它抛出异常清楚, .....这是我现在的代码
In such a case it throws exception that is clear, .....Here is my code now
bool[] arraySection = new bool[control.Width, control.Height]; for (int a = 0; i < control.Width; i++) { for (int b= 0; j < control.Height; j++) { array[a, b] = false; } } foreach (Data oData in control.cData) { for (int a = oData.Left - control.Left; a < ((oData.Left + oData.Width) - control.Left); a++) { for (int b = oData.Top - control.Top; j < ((oData.Top + oData.Height) - control.Top); b++) { arrayS[a, b] ; } } }我无法弄明白为什么????任何人都有解决方案
I am not able to figure out why????Anyone got solution
推荐答案嗯。 看看你在做什么: Um. Look at what you are doing: int [] array = new int [100];
将数组声明为100个整数的单位维数组。
Declares array as a signle dimensional array of 100 integers.
array[200] = 3;尝试访问具有100个元素的数组的元素201。 .. 但这不会编译:
Tries to access element 201 of an array with 100 elements... But that won't compile:
array[a, b] = false;数组不是二维数组,它是一维的。而且C#严格要求这样做 - 非常正确! 数组不是bool类型 - 它是整数。并且你不能将bool存储在整数位置!
array is not a two dimensional array, it's one dimensional. And C# is strict about such things - quite rightly! And array isn't of type bool - it's integer. And you can't store a bool in an integer location!
它只是意味着 It simply means that ((oRange.Left + oRange.Width) - control.Left) > control.With
或
or
((oData.Top + oData.Height) - control.Top) > control.Height现在由你决定为什么你的代码属于这种边缘情况。 最好的选择是使用调试器和在执行时注意相关变量的值。 代码的第二部分还有4个大错字你提供了(你在所有循环中交换了变量名a / i和b / j)。 实际上它甚至不会编译,所以我想这只是你在写问题时犯的错误。 [/编辑]
Now it's up to you to find why your code falls into this edge-case. Best option is to use the debugger and watch for the values of relevant variables while executing. There are also 4 big typos in the second part of the code you provided (you swapped variable names a/i and b/j in all you for loops). Actually it would not even compile, so I guess it's just a typo you made while writing your question. [/Edit]
更多推荐
指数超出范围
发布评论