Ошибки, которые не находятся в Вашем коде по сути, а скорее в модуле поставщика, от которого Вы зависите. Особенно, когда поставщик безразличен, и Вы вынуждены взломать обходное решение. Очень печальный!
Два метода не эквивалентны: в первом используется CurrentCulture
. Это может привести к лишним точкам / запятым в некоторых культурах (у меня нет примеров).
Когда вы используете InvariantCulture
, вы уверены, что всегда используется одно и то же форматирование.
Изменить: И , если вы используете CodeAnalysis , он будет жаловаться, если вы не используете CultureInfo
.
Насколько я понимаю, первым будет форматирование числа как минимум с одним символом с использованием культуры по умолчанию компьютера. Второй отформатирует его как число в зависимости от правил InvariantCulture.
Bobby
Если вы хотите указать «без форматирования, независимо от того, что», я лично думаю, что у вас есть первый вариант:
123456789.ToString("0");
лучше передает намерение. Обратной стороной может быть ситуация, когда культура переопределяет строку формата «0» для используемого числового типа.
Я никогда не использовал его сам, но, может быть, pexpect - это то, что вам нужно?
«Pexpect можно использовать для автоматизации интерактивные приложения, такие как ssh,
Инвариантный язык действительно определяет группировку цифр (разумеется, по 3 цифрам) и разделитель цифр. Таким образом, причина того, что
123456789.ToString (CultureInfo.InvariantCulture)
производит «123456789», не из-за инвариантной культуры, а из-за стандартного спецификатора общего числового формата «G».Так что я бы хотел говорят, что вывод таков: совершенно нормально не беспокоиться о любых дополнительных аргументах и просто использовать :
12345678.ToString()
Я думаю, что это лучший из всех случаев, потому что это означает, что обычно вы не нужно даже вызывать
ToString ()
, потому что большинство функций печати / записи принимают всевозможные аргументы и выполняютToString ()
за вас.