【发布时间】:2020-02-28 18:21:18
【问题描述】:
我有 2 个数组用于存储来自用户的 2 个系列的输入。我将两个数组的边界设置为等于同一个变量,但是在输入信息时,在第一个数组的最终输入之后,我得到一个异常“索引超出了数组的边界。”。
当我尝试将数组的边界更改为常数时,它们的行为正常。
string[] names = new string[movies-1];
double[] ratings = new double[movies-1];
for(int i = 0; i < movies; i++)
{
names[i] = Console.ReadLine();
ratings[i] = Convert.ToDouble(Console.ReadLine());
}
System.IndexOutOfRangeException: '索引超出了数组的范围。'
【问题讨论】:
-
你没有得到另一个异常的唯一原因是程序在第一个异常之后停止。如果你注释掉第一行,你会看到第二行抛出了同样的异常。
-
除了完全有效的答案之外,您还可以做一些事情来帮助自己。鉴于您的数据类型,您可以使用 List,并且使用它不会产生负面影响,即使在性能方面它实际上可能更快。至于查找和处理异常,正确调试可能是未来需要考虑的事情。
-
您应该考虑将相关数据保存在自定义类或元组中,这样您就可以只拥有一个值数组。