Friday, November 19, 2010

Разница между Convert.ToInt32 и Int.Parse

Результат Convert.ToInt32 и Int.Parse будут различаться в случае передачи null. В первом случае результат будет равен 0, во втором - будет исключение. Это может оказаться существенным, например, если aspx-страница принимает параметр id, который преобразуется из строки в индекс объекта:

            int id = Convert.ToInt32(Query["id"]);

При отсутствии параметра в этом случае будет отображаться объект с индексом 0 или может быть мы получим null reference exception. Это не очень хорошо. Правильнее - получить исключение, обработать его и сообщить пользователю об отсутствии необходимого параметра. А, следовательно, в этом случае правильнее использовать Int.Parse.

Тоже самое касается использования int.TryParse. Используйте его только в том случае, если знаете как будете обрабатывать результат ошибки преобразования.

No comments: