Например, в следующем сценарииДолжен ли я использовать класс Convert?
Convert.Int64(string somstring)
или
long.Parse(string somstring);
, кажется, делают ту же работу. Какой из них лучше?
Благодаря
Например, в следующем сценарииДолжен ли я использовать класс Convert?
Convert.Int64(string somstring)
или
long.Parse(string somstring);
, кажется, делают ту же работу. Какой из них лучше?
Благодаря
Если вы посмотрите на источник, Convert.ToInt64(string)
просто вызывает long.Parse
, но проверяет, что строка не null
.
Я бы порекомендовал звонки long.Parse
, потому что это делает намерение (синтаксический анализ строк) более четким.
Я рекомендую использовать класс Convert
, если тип, который вы конвертируете , из может измениться. (Или, если вы конвертируете с object
)
Convert.Int64
называет long.Parse
внутренне, просто делает нулевой чек прежде. Вот кишка тонка:
if (value == null)
{
return 0L;
}
return long.Parse(value, CultureInfo.CurrentCulture);
Если вам нужен нулевой чек, Convert.Int64 не является более безопасным, что все, в противном случае никакой разницы.
Убейте меня еще раз на одну секунду ... :-) – SLaks
Convert.Int64 фактически вызывает long.Parse с CultureInfo.CurrentCulture после первого выполнения нулевой проверки строки. До тех пор, пока вы знаете, что строка не будет пустой, вы можете сохранить этот шаг и позвонить long.Parse
Только для полноты других ответов не забудьте про long.TryParse, что в целом безопаснее, если вы unsure из формата входной строки.
Спасибо за ваш ответ +1. Не могли бы вы рассказать мне, где найти источник C# для некоторых методов? – road242
Отражатель (http://www.red-gate.com/products/reflector/) или .Net Reference Source (http://referencesource.microsoft.com/) – SLaks