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