Я пытаюсь сохранить десять значений в массиве с C#. Если я использую только цифры с цифрами, все идет гладко. Тем не менее, каждый раз, когда я даю числа с двумя или более цифрами, я получаю сообщение об ошибке из-за границ индекса массива. Я подозреваю, что он хранит каждую цифру отдельно, например, если 10 - это первый номер, который я вводил, он сохранил бы 1 в первой позиции и 0 во втором. Однако я не уверен. Это проблема здесь или это что-то еще? Как я могу это исправить?Как найти причину исключения «вне диапазона»?
(с помощью Microsoft Visual Studio 2010 Ultimate)
код:
double[] userValues = new double[10];
for (int i=0; i < userValues.Length; i++) {
Console.Write("Enter a value: ");
userValues[i] = Convert.ToDouble(Console.ReadLine());
}
пример ошибки я получаю:
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Enter a value: 10
Unhandled Exception: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at Assignment1.Program.Main(String[] args) in I:\CS2350\Assignment1\Assignment1\Program.cs:line 21
Press any key to continue . . .
Этот код работает для меня. Какой еще код возникает после цикла? –
Что такое строка кода в строке 21? –
Просто запустите в отладчике (возможно, включите в меню Debug - Exceptions исключение CLR) и посмотрите на строку, где останавливается VS2010. – Oliver