Я использую бета-версию ReSharper, и он выдает мне предупреждения для следующего кода:
int id;
// ...
DoSomethingWith(id.ToString());
Предупреждение выдается на вызове id.ToString()
, и он говорит мне "Укажите культуру в преобразовании строк явно". Я понимаю предупреждение и знаю, как его исправить - просто измените код на гораздо более громоздкий id.ToString(CultureInfo.InvariantCulture)
.
Но мой вопрос в том, так ли это необходимо? То есть, очевидно, что важно указывать культуру при использовании таких типов, как DateTime
(в разных культурах разные форматы дат) и Double
(разные символы используются для десятичной точки). Но Int32.ToString()
, по крайней мере в культурах en-US и invariant, вообще не добавляет никакого форматирования. Ни запятых, ни десятичных точек, ни знаков доллара, ничего. Так что же должно быть в зависимости от культуры?
Существуют ли культуры, которые действительно добавляют какое-то форматирование при вызове Int32.ToString()
без параметров? Или это ошибка бета-версии ReSharper, и это предупреждение действительно не относится к Int32
(в этом случае я напишу сообщение об ошибке ReSharper)?