В одном цикле я постоянно получаю System.ArgumentOutOfRangeException:
C#
for(int i=0; i<Answers.Count; i++)
{
Answers[i].BeginInvoke(new InvokeDelegate(() => { Answers[i].Enabled = false; Answers[i].Visible = false; }));
}
Длина Answers
- 6, но при проверке оказалось что i
достигает 6! Это же невозможно(или я ошибаюсь)?
Типичная ошибка с захватом переменной. Попробуйте это
for(int i=0; i<Answers.Count; i++)
{
int j = i;
Answers[i].BeginInvoke(new InvokeDelegate(() => { Answers[j].Enabled = false;
Answers[j].Visible = false; }));
}
Проблема в том, что всё, что внутри этого кода BeginInvoke(....)
запускается не сразу, а через какой то промежуток времени. К тому моменту ваш цикл уже закончился и переменная i уже равна Answers.Count.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Возможна ли передача массива в параметр SQL? Если я хочу массово удалить, или проставить статусы списку заказов, как это сделать?
Есть класс Colum<T>, Есть класс Row со списком List<Colum>И есть проблема, List<Colum> требует указать ещё тип T аки List<Colum<int>>, но мне не нужно...
Я знаю, что Open Server имеет в комплектации консоль, откуда есть доступ к ComposerТем не менее, я бы хотел обойтись без этой консоли и работать с Composer...
есть текст [a]какой то текст[/a] еще куча какого то текста, [a]какой то текст[/a] есть регулярка /(\[a+\/a\])/ если текст без переноса строки, то находит...