Задать вопрос
Этот вопрос закрыт для ответов, так как повторяет вопрос Convert.ToXXXX() vs. XXX.Parse()?
NeverGetBurn
@NeverGetBurn

Какие различия между Parse и Convert.To?

Методы Parse() и Convert.To...() выполняют одну функцию - конвертируют значение в другой тип данных, но в чем разница между ними ?

string age = Convert.ToInt16(Console.ReadLine());

string age = "20";
ageSecond = Int16.Parse(age)
  • Вопрос задан
  • 7196 просмотров
Подписаться 2 Простой
Решения вопроса 1
@Sing303
Недавно отвечал на похожий вопрос
Cast vs Convert vs Parse?
Ответ написан
Ответы на вопрос 3
Morpheus_God
@Morpheus_God
Parse преобразует строку в int16 как в вашем примере.
Convert преобразует в int значение любого типа, к примеру boolean, double, float . На не инициализированной строке если использовать Parse вы получите исключение, Convert вернет 0.
Convert можно применить к классу если класс реализует интерфейс IConvertible. Тоесть если вы вводите какой то свой тип данных, то можете проводить в него конвертацию, достаточно будет реализации выше указанного интерфейса.
Ответ написан
shai_hulud
@shai_hulud
А еще есть пакет, который сам выбирает подходящтй способ преобразования.
https://habr.com/post/315352/
Ответ написан
lexxpavlov
@lexxpavlov
Программист, преподаватель
Чтобы разобраться, в чём разница, то смотрите источник - исходный код вот здесь (в строке 887).
В общем, Parse берёт строку и возвращает число (возможно, будет исключение). Convert.ToInt16 имеет много вариантов, в зависимости от типа аргумента. Конкретно Convert.ToInt16(string) вызывает Int16.Parse(value, CultureInfo.CurrentCulture), то есть, абсолютно нет разницы с Parse (в том числе, возникнет исключение, если строка не является числом).
Ответ написан
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.
Похожие вопросы