Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
.NET 4.x

Индекс за пределами диапазона. Что за новая чудо-ошибка?

18.01.2018, 14:54. Показов 2694. Ответов 11
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Индекс за пределами диапазона. Индекс должен быть положительным числом, а его размер не должен превышать размер коллекции.
Имя параметра: index
С этой ошибкой пожалуй знаком каждый программист, который написал хотя бы один цикл/

Но сегодня она предстала передо мной в новом свете:

Прошу объяснить мне, недотёпе, где в выражении:
C#
1
dtReport.Rows.Clear();
Находится индекс?

На всякий случай даже условие поставил:
C#
1
if (dtReport.Rows.Count > 0)
Хотя по-моему Clear должна работать и так прекрасно при любом количестве Rows.
Не понимаю. Про какие пределы диапазона может говорить компилятор??
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.01.2018, 14:54
Ответы с готовыми решениями:

Индекс за пределами диапазона. Ошибка
Помогите исправить ошибку. Появляется при многократном добавлении записи в листбокс (но это не точно). Вот архив с моим проектом:

Ошибка - Индекс за пределами диапазона
Здраствуйте! Помогите пож-та решить проблему. class SomeClass { public void SomeMethod(List<string> lst) { ...

График функции и ошибка: Индекс за пределами диапазона
График не получается. ошибка: Индекс за пределами диапазона. помогите пожалуйста... using System; using...

11
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
18.01.2018, 17:04  [ТС]
Еще интересно, если продолжить выполнение на F10 или F5, продолжит без ошибок, что не типично
0
26 / 24 / 17
Регистрация: 10.01.2018
Сообщений: 66
18.01.2018, 17:11
Иногда он может выбрасываться не в том месте.
Посмотрите внимательно на все индексы выше.
0
Эксперт .NET
 Аватар для Wolfdp
3790 / 1767 / 371
Регистрация: 15.06.2012
Сообщений: 6,543
Записей в блоге: 3
18.01.2018, 17:18
что за обьект dtReport ?
0
911 / 796 / 329
Регистрация: 08.02.2014
Сообщений: 2,391
18.01.2018, 17:22
netBool, доступ многопоточный? CallStack что говорит?
0
Эксперт .NET
 Аватар для Rius
13112 / 7673 / 1674
Регистрация: 25.05.2015
Сообщений: 23,395
Записей в блоге: 14
18.01.2018, 17:40
Цитата Сообщение от netBool Посмотреть сообщение
Прошу объяснить мне, недотёпе, где в выражении:
C#
1
dtReport.Rows.Clear();
Находится индекс?
Например, какое-нибудь событие что-то делает. Возможно даже, что вызывается по изменению числа строк.
И тут строки неожиданно исчезают.
Индекс строки в списке только что был валидным, и вдруг их стало 0 --> ArgumentOutOfRange
0
18.01.2018, 17:41

Не по теме:

У автора уже 20.02.2018 :D

0
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
21.01.2018, 15:44  [ТС]
Цитата Сообщение от Wolfdp Посмотреть сообщение
что за обьект dtReport ?
Это DataGridView



SeIZVeIZ, нет, все в одном потоке



Цитата Сообщение от KIKO KUTS Посмотреть сообщение
Иногда он может выбрасываться не в том месте.
Посмотрите внимательно на все индексы выше.
Я тоже об этом думал. В принципе ошибка возникает в двух местах. Второе вот:

По идее 3-мя строчками ниже, если бы функия продолжила выполнение было бы переполнение. А в первом случае 2мя строчками выше. Но в первом случае этот код не должен выполняться из-за if, во втором из-за return

Цитата Сообщение от Rius Посмотреть сообщение
Например, какое-нибудь событие что-то делает. Возможно даже, что вызывается по изменению числа строк.
И тут строки неожиданно исчезают.
Индекс строки в списке только что был валидным, и вдруг их стало 0
А события могут вызываться асинхронно в одном потоке, в смысле одновременно?
Во втором случае вообще на return ошибка выскочила. Там-то связь какая?

Цитата Сообщение от zewer Посмотреть сообщение
У автора уже 20.02.2018
Вы внимательны. Да, верно. Дело в том. что программу будут юзать разные люди. Особенно хитроумные юзеры могут изменять текущую дату, и мне надо проверить, как она будет себя вести в этих случаях. Но ошибка, думаю, связана не с этим
0
Эксперт .NET
 Аватар для Rius
13112 / 7673 / 1674
Регистрация: 25.05.2015
Сообщений: 23,395
Записей в блоге: 14
21.01.2018, 15:47
Цитата Сообщение от netBool Посмотреть сообщение
Там-то связь какая?
Так отловите ошибку глобальным обработчиком и посмотрите стек вызовов.
0
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
21.01.2018, 16:05  [ТС]
Цитата Сообщение от Rius Посмотреть сообщение
Так отловите ошибку глобальным обработчиком и посмотрите стек вызовов.
Это как? WinApi GetLastError или Marshal.GetLastWin32Error()? И как там посмотреть стэк managed вызовов?
0
Эксперт .NET
 Аватар для Rius
13112 / 7673 / 1674
Регистрация: 25.05.2015
Сообщений: 23,395
Записей в блоге: 14
21.01.2018, 16:10
Посмотрите пример в Application.ThreadException Event
1
 Аватар для netBool
325 / 304 / 173
Регистрация: 16.11.2010
Сообщений: 1,069
Записей в блоге: 9
22.01.2018, 10:50  [ТС]
Rius, в общем, вы наверное правы. Видимо, компилятор пытался выполнить два dtReport.Rows.Clear() к одному объекту одновременно. Возникала внутренняя ошибка в этом методе и студия не знала, куда о этом сообщить и кидала куда попало. Но я почему-то считал, что все события в рамках одного окна происходят последовательно, а тут так... может, из-за разных tabpages... наверное из-за них
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
22.01.2018, 10:50
Помогаю со студенческими работами здесь

Ошибка при произведении матриц (Индекс за пределами диапазона)
Помогите пожалуйста. private void button1_Click(object sender, EventArgs e) { int arrColCount =...

Ошибка при записи в ListBox (Индекс за пределами диапазона)
Имеется вот такой кодusing System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using...

Ошибка при умножении матриц, индекс за пределами диапазона
private void button1_Click(object sender, EventArgs e) { int arrColCount =...

Что делать если vb.net выдает ошибку "Индекс за пределами диапазона. Индекс должен быть положительным числом, а его раз"
Выдает ошибку вот такой код, в checklistbox надо поместить все значения из списка list, но при попытке это сделать выдает ошибку: Dim...

Произведение двух матриц и ошибка "Индекс за пределами диапазона"
Ситуация такова. Имеются две матрицы размерностью 8 на 8. Количество строк и столбцов двух матрицах можно изменять, но не превышать 8. Как...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
Новые блоги и статьи
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru