![]() |
|
Модераторы: Partizan, gambit |
![]()
|
|
| kurzon |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 307 Регистрация: 12.8.2007 Репутация: 0 Всего: -11 |
Как переменую типа String конвертировать в тип int?
Это сообщение отредактировал(а) kurzon - 3.11.2007, 01:29 |
|||
|
||||
| marcusmae |
|
||||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
так
или так
Различие в том, что подопечные класса Convert возвращают результат и в случае ошибок вываливают исключение, а .TryParse-ы сообщают о степени успешности в логический результат и значение передают через аргумент на выход. -------------------- ἀπὸ μηχανῆς θεός |
||||
|
|||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 3 Всего: 50 |
marcusmae, а операции типа int.Parse(...) чем от этих двух отличаются?
|
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Ага, забыл про неё. -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 3 Всего: 50 |
marcusmae, нет, я задал вопрос, а не решил подстебнуть. Мне интересно чем эта фигня - то от тех отличается или алгоритм один и тот же?
|
|||
|
||||
| marcusmae |
|
|||
![]() stravaganza ![]() ![]() Профиль Группа: Участник Сообщений: 874 Регистрация: 26.3.2006 Репутация: 5 Всего: 39 |
Ааа
Ну чем .Parse отличается от .TryParse - это как, допустим в System.Collections.Genetic.Dictionary<T>, есть индексер по ключам, возвращающий значения и есть .TryGetValue, возвращающий bool, а значение - через out-аргумент. Ээ, тут не вижу что объяснять, просто разные подходы. А вот Convert.ToInt32 отличается от Int32.Parse тем, как обрабатывается null. Convert.ToInt32 возвращает ноль, а Int32.Parse вывалит исключение. Вы правы, на это стоит обратить внимание. По этому поводу в статье MSDN :
и проводится некоторое сравнение. Это сообщение отредактировал(а) marcusmae - 3.11.2007, 15:40 -------------------- ἀπὸ μηχανῆς θεός |
|||
|
||||
| tol05 |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1632 Регистрация: 21.12.2006 Где: Харьков Репутация: 36 Всего: 170 |
Int32.Parse - если приведение строки к int невозможно - выбрасывается исключение. Опасно использовать без try-catch.
Int32.TryParse - если приведение строки к int невозможно - просто возвращает false, исключение не выбрасывается. Само название говорит этой функции "попробую привести, после выполнения скажу "да" или "нет" Convert.ToInt32 - тоже выбрасывает исключение при неудаче. Ну а зачем Convert.ToInt32, если есть Int32.Parse ? Да просто клас Convert разработан для любых приведений между базовыми типами .Net, не только string в int , но и "любой базовый тип в любой базовый тип". Посчитали - сколько возможно комбинаций преобразования среди базовых типов, да и написали все методы преобразования. А Convert - это враппер для всех этих методов. Вот Convert.ToInt32 из рефлектора
-------------------- На хорошей работе и сны хорошие снятся. |
|||
|
||||
| Xenon |
|
|||
|
Эксперт ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 1529 Регистрация: 12.4.2006 Репутация: 3 Всего: 50 |
Насчет исключений был в курсе, а того, что Convert, по сути, оболочка лишь - нет. Спасибо
|
|||
|
||||
![]()
|
| Прежде чем создать тему, посмотрите сюда: | |
|
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, Partizan, PashaPash. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | .NET для новичков | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |