我正在尝试迭代我的点数组,但我得到以下错误:
Un' System.IndexOutOfRangeException'未处理的异常发生
这是我的语法 - 我在抛出错误的行上方有一条评论
如何编写这种语法,以便检索i-1位置?
private void btnMakeCalc_Click(object sender, EventArgs e)
{
Point[] pts = new Point[] { new Point { X = -100, Y = 0 }, new Point { X = 0, Y = 0 } };
for (int i = 0; i < pts.Count(); i++)
{
float X1value = pts[i].X;
//The below line throws the error
float X2value = pts[i-1].X;
MessageBox.Show("X1 Is: " + Convert.ToString(pts[i].X) + "Environment.NewLine" + "X2 Is: " + Convert.ToString(pts[i-1].X));
}
}
答案 0 :(得分:2)
这是因为您试图在第一个条目之前指向一个值,尝试包括检查以确定它不是您指向的(第一个条目-1)。
类似的东西:
private void btnMakeCalc_Click(object sender, EventArgs e)
{
Point[] pts = new Point[] { new Point { X = -100, Y = 0 }, new Point { X = 0, Y = 0 } };
for (int i = 0; i < pts.Count(); i++)
{
float X1value = pts[i].X;
//The below line throws the error (see fix)
if (i != 0)
float X2value = pts[i-1].X;
MessageBox.Show("X1 Is: " + Convert.ToString(pts[i].X) + "Environment.NewLine" + "X2 Is: " + Convert.ToString(pts[i-1].X));
else
continue;
}
}
我喜欢将这些小支票称为&#34;完整性检查&#34;我不知道这是否被口语化接受。