2010-03-01 6 views

ответ

4

Если вы посмотрите на источник, Convert.ToInt64(string) просто вызывает long.Parse, но проверяет, что строка не null.

Я бы порекомендовал звонки long.Parse, потому что это делает намерение (синтаксический анализ строк) более четким.

Я рекомендую использовать класс Convert, если тип, который вы конвертируете , из может измениться. (Или, если вы конвертируете с object)

+0

Спасибо за ваш ответ +1. Не могли бы вы рассказать мне, где найти источник C# для некоторых методов? – road242

+0

Отражатель (http://www.red-gate.com/products/reflector/) или .Net Reference Source (http://referencesource.microsoft.com/) – SLaks

1

Convert.Int64 называет long.Parse внутренне, просто делает нулевой чек прежде. Вот кишка тонка:

if (value == null) 
{ 
    return 0L; 
} 
return long.Parse(value, CultureInfo.CurrentCulture); 

Если вам нужен нулевой чек, Convert.Int64 не является более безопасным, что все, в противном случае никакой разницы.

+0

Убейте меня еще раз на одну секунду ... :-) – SLaks

0

Convert.Int64 фактически вызывает long.Parse с CultureInfo.CurrentCulture после первого выполнения нулевой проверки строки. До тех пор, пока вы знаете, что строка не будет пустой, вы можете сохранить этот шаг и позвонить long.Parse

2

Только для полноты других ответов не забудьте про long.TryParse, что в целом безопаснее, если вы unsure из формата входной строки.

Смежные вопросы