Является ли Int32.ToString() культурно-специфическим?

Я использую бета-версию ReSharper, и он выдает мне предупреждения для следующего кода:

int id;
// ...
DoSomethingWith(id.ToString());

Предупреждение выдается на вызове id.ToString(), и он говорит мне "Укажите культуру в преобразовании строк явно". Я понимаю предупреждение и знаю, как его исправить - просто измените код на гораздо более громоздкий id.ToString(CultureInfo.InvariantCulture).

Но мой вопрос в том, так ли это необходимо? То есть, очевидно, что важно указывать культуру при использовании таких типов, как DateTime (в разных культурах разные форматы дат) и Double (разные символы используются для десятичной точки). Но Int32.ToString(), по крайней мере в культурах en-US и invariant, вообще не добавляет никакого форматирования. Ни запятых, ни десятичных точек, ни знаков доллара, ничего. Так что же должно быть в зависимости от культуры?

Существуют ли культуры, которые действительно добавляют какое-то форматирование при вызове Int32.ToString() без параметров? Или это ошибка бета-версии ReSharper, и это предупреждение действительно не относится к Int32 (в этом случае я напишу сообщение об ошибке ReSharper)?

64
задан Kiley Naro 13 December 2011 в 16:21
поделиться