Это интересный старый вопрос. Я добавляю ответ, потому что никто не заметил пару вещей с оригинальным вопросом.
Что быстрее: Convert.ToDouble или Double.TryParse?
Что безопаснее: Convert.ToDouble или Double.TryParse?
Я собираюсь ответить на оба эти вопроса (я обновлю ответ позже), подробно, но сначала:
В целях безопасности вещь, которую каждый программист пропустил в этом вопросе, - это строка (выделено мной):
Добавляются только данные, состоящие из нескольких цифр (1000 1000,2 1000,34 - запятая - российский стандарт ).
За этим примером кода:
Convert.ToDouble(regionData, CultureInfo.CurrentCulture);
Интересно, что если электронные таблицы в русском формате, но в Excel неправильно введены поля ячеек, какова правильная интерпретация значений, поступающих из Excel?
Вот еще одна интересная вещь о двух примерах, касающихся скорости:
catch (InvalidCastException)
{
// is not a number
}
Вероятно, это сгенерирует MSIL, который выглядит следующим образом:
catch [mscorlib]System.InvalidCastException
{
IL_0023: stloc.0
IL_0024: nop
IL_0025: ldloc.0
IL_0026: nop
IL_002b: nop
IL_002c: nop
IL_002d: leave.s IL_002f
} // end handler
IL_002f: nop
IL_0030: return
В этом смысле мы, вероятно, можем сравнить общее количество инструкций MSIL, выполняемых каждой программой - подробнее об этом позже, когда я обновлю этот пост.
Я считаю, что код должен быть правильным, ясным и быстрым ... В таком порядке!