Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > Глупая проблема


Автор: alir 7.4.2006, 20:21
Например
Код

int s = (int) textBox1.Text;

не работает. Реально ли перевести? Очень нужно.

Автор: Ch0bits 7.4.2006, 20:38
Код

try
            {
                int s = int.Parse(textBox1.Text);
            }
            catch
            {
                MessageBox.Show("Неверное число!");
            }

Автор: Exception 7.4.2006, 20:59
Баян. Обсуждалось несколько топиков назад.

Автор: FatherFrost 8.4.2006, 22:48
Можно еще так
Код

string str;
        int j;
        if (!int.TryParse(str, out j))
            throw new Exception("Невозможно преобразовать строку в целое число");

TryParse возвращает булевское значение результата операции, т.е. если парсить можно, то в j будет записано правильное значение и метод вернет true, а если нет, то j будет проинициализированное значение и вернет false.

Автор: mr.DUDA 9.4.2006, 11:34
Правильно сказал FatherFrost, так делать безопаснее.

Автор: ivashkanet 10.4.2006, 08:27
Обыкновенный Parse() сам выдает ошибку, если не может преобразовать в int smile
Код
int j = int.Parse("dsfjksd");

Ошибка:
Цитата
Input string was not in a correct format.

Так что Ch0bits тоже правильно сказал smile

Автор: mr.DUDA 10.4.2006, 09:11
ivashkanet, TryParse не генерирует исключение, а Parse - генерирует. Так что вопрос тут только в том, лень программеру делать свой try...catch или не лень smile

Автор: ivashkanet 10.4.2006, 09:30
Цитата(mr.DUDA @ 10.4.2006, 09:11 Найти цитируемый пост)
ivashkanet, TryParse не генерирует исключение, а Parse - генерирует. Так что вопрос тут только в том, лень программеру делать свой try...catch или не лень

Чем отличается if от try/catch (в данном примере)?
Все равно исключение обрабатывать нужно.

P.S. Конструкция
Код
int.TryParse(str, out j)
выглядит намного страшнее и непонятнее, чем
Код
j = int.Parse(str)

Автор: FatherFrost 10.4.2006, 12:11
ivashkanet, не обязательно поднимать исключение в случае невозможности приведения типов.

Автор: ivashkanet 10.4.2006, 13:14
Цитата(FatherFrost @ 10.4.2006, 12:11 Найти цитируемый пост)
ivashkanet, не обязательно поднимать исключение в случае невозможности приведения типов.

Не хочу свалиться в offtop smile , но обработанное исключение, ИМХО, не исключение!
А catch можно и пустым сделать!

Автор: FatherFrost 10.4.2006, 13:45
ivashkanet, может ты и прав... Но я думаю не просто так сделали разработчики такую конструкцию... Думаю это предназначено для удобства перехода с других языков (ИМХО), а так существенной разницы в этих конструкциях не вижу...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)