private void menuItem6_Check(object sender, System.EventArgs e)
{
for (int i=0; i<answer.Length; i++)
{
for (int j = 0; j<kslovo.Count; j++){
int size_word = ((KSlovo)kslovo[j]).word.Length;
for (int d = 0; d<size_word; d++)
{
KSlovo k = ((KSlovo)kslovo);
if (k.word[d].Text!=answer.ToString())
{
k.word[d].Text = answer.ToString();
k.word[d].ForeColor = Color.Red;
}
i++;
}
}
}
}
Ошибка в алгоритме
answer.Length = 36
kslovo.Count = 9
size_word - изменяется в зависимости от kslovo.Count
Код:
Можно сделать так.После выхода ошыбки Си автоматом переносится на неверную строку.тут вначале пишем.
try
{
Сюда занеси код где ошыка.
}
catch(System::Exception^)
{
А сюда действия программ при появление ошыбки.
}
В шарпе замени двоеточие( :: ) на точку.
Код:
KSlovo k = ((KSlovo)kslovo);
if (k.word[d].Text!=answer.ToString())
{
k.word[d].Text = answer.ToString();
k.word[d].ForeColor = Color.Red;
}
i++;
if (k.word[d].Text!=answer.ToString())
{
k.word[d].Text = answer.ToString();
k.word[d].ForeColor = Color.Red;
}
i++;
Надо бы наверное проверять значение переменной i раз уж ты ее вручную изменяешь...
Код:
int size_word = ((KSlovo)kslovo[j]).word.Length;
индекс i - вообще длина ответа, а если в массиве kslovo нету такого индекса?
Госик, путаница помоему полная.
я согласна. Блин, когда я начну правильно программировать и сразу. А то весь процесс у меня так долго проходит. А алгоритм исправлен :)