Все функции Convert.ToX
, которые принимают аргумент типа string
, в конечном итоге все равно вызывают метод Parse
соответствующего типа данных.
Например, Convert.ToInt32(string)
выглядит примерно так:
public static int ToInt32(string value)
{
if (value == null)
{
return 0;
}
return int.Parse(value, CultureInfo.CurrentCulture);
}
То же самое для всех других методов преобразования чисел, включая Decimal
и DateTime
. Так что это не имеет значения, какой вы используете; результат (и скорость) будут одинаковыми в любом случае.
Действительно, единственным отличием является пункт if (value == null)
в начале. Будет ли это удобно, зависит от конкретного случая использования. Как правило, если вы знаете, что у вас есть ненулевой объект string
, вы также можете использовать Parse
. Если вы не уверены, ConvertToX
- более безопасная ставка, требующая меньше встроенного кода с нулевой проверкой.