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