我正在尝试从列表中测试特定元素,并将其与用户输入的字符串进行比较。它在if语句中:
if (textboxinput.Text.ToString() == main.steps[current])
在此上下文中,current是一个等于0的整数,并且在if语句完成当前++之后。
这是一个新的wpf表单窗口,通过单击MainWindow wpf表单上的按钮打开。 main是从包含我们列表的MainWindow1类中实例化的:
public List<string> steps = new List<string>();
每当我运行此代码时,我都会收到超出范围异常的参数。
简而言之:我正在尝试用变量替换列表的索引,并且它说它超出了范围。 仍在学习c#,这可能是一个简单的修复,它可能是一个我忘记的超级明显的规则,但任何帮助都会受到赞赏,因为同样的异常也会在数组上发生。 这是点击按钮的事件
int current = 0;
private void buttonanswer_Click(object sender, RoutedEventArgs e)
{
if (textboxinput.Text.ToString() == main.steps[current])
{
textboxoutput.Foreground = Brushes.Green;
textboxoutput.AppendText(textboxinput + Environment.NewLine);
textboxinput.Clear();
}
else
{
textboxoutput.Foreground = Brushes.Red;
textboxoutput.AppendText(textboxinput + Environment.NewLine);
textboxinput.Clear();
}
current++;
}
答案 0 :(得分:0)
确保在循环当前时,它总是小于main.steps数组的长度。请记住,如果数组包含5个元素,则它们的编号为0,1,2,3和4。最有可能的是,您允许电流达到数字5(或者在您的特定情况下,您的数组大小)。这种类型的错误是在使用数组时导致出界异常的原因。