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