Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Где ошибка ?

71K
30 мая 2011 года
Pahanuch
4 / / 30.05.2011
Народ, уже несколько часов борюсь над кодом, но не понимаю почему выводится строка из массива words в this.Text с ошибкой.

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];

}


}

}
360
30 мая 2011 года
P*t*
474 / / 15.02.2007
А что выводится? И что должно по вашему мнению выводиться?
71K
30 мая 2011 года
Pahanuch
4 / / 30.05.2011
Строка из массива: вводится в текстбокс число, конвертируется в инт, затем это число подставляется в индекс массива и выводит строку
360
30 мая 2011 года
P*t*
474 / / 15.02.2007
Ну это понятно. Что в результате происходит на практике?

Я не очень представляю устройство текстбокса, но полагаю, что будет так:
В строке this.Text = words[a]; вызовется set для свойства Text
В этом вызове set повторно вызовется TextBoxChanged()
И затем при конвертировании произойдет ошибка т.к туда уже записана строка.
Предлагаю вставить конвертирование в try-catch блок и в catch сделать return;
71K
30 мая 2011 года
Pahanuch
4 / / 30.05.2011
Ты не мог бы дать пример, так как try-catch не умеею использовать(
71K
30 мая 2011 года
Pahanuch
4 / / 30.05.2011
на практике из массива выводится строка, но с ошибкой!
360
30 мая 2011 года
P*t*
474 / / 15.02.2007
Что значит, с ошибкой? Не та строка выводится? Или вообще программа вырубается?

Варианты (выбери один, какой больше понравится):
1) после char b = this.Text[0]; вставить if (b<'0' || b>'9') return; - без всякого try
2) Вместо int a = Convert.ToInt32(this.Text);
 
Код:
int a;
try {
   a=Convert.ToInt32(this.Text);
} catch (Exception) {
   return;
}
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог