int a;
try {
a=Convert.ToInt32(this.Text);
} catch (Exception) {
return;
}
Где ошибка ?
class TextBox2 : TextBox0
{
public override void TextBoxChanged()
{
string[] words = { "zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
char b = this.Text[0];
int a = Convert.ToInt32(this.Text);
if (a >= 0 && a<= 9) {
this.Text = words[a];
}
}
}
А что выводится? И что должно по вашему мнению выводиться?
Строка из массива: вводится в текстбокс число, конвертируется в инт, затем это число подставляется в индекс массива и выводит строку
Я не очень представляю устройство текстбокса, но полагаю, что будет так:
В строке this.Text = words[a]; вызовется set для свойства Text
В этом вызове set повторно вызовется TextBoxChanged()
И затем при конвертировании произойдет ошибка т.к туда уже записана строка.
Предлагаю вставить конвертирование в try-catch блок и в catch сделать return;
Ты не мог бы дать пример, так как try-catch не умеею использовать(
на практике из массива выводится строка, но с ошибкой!
Варианты (выбери один, какой больше понравится):
1) после char b = this.Text[0]; вставить if (b<'0' || b>'9') return; - без всякого try
2) Вместо int a = Convert.ToInt32(this.Text);
Код: