ToString () по умолчанию CultureInfo
Я думаю, что понимаю использование CultureInfo.
Если я сделаю просто:
const int a = 5;
string b = a.ToString();
равно ли это :
const int a = 5;
string b = a.ToString(CultureInfo.InvariantCulture);
другими словами, ToString () по умолчанию использует языка и региона существует или CurrentCulture или нет ?
3 ответов
ToString () использует CurrentCulture, если не указано
см.:http://msdn.microsoft.com/en-us/library/6t7dwaa5 (v=против 85).aspx
" возвращаемое значение отформатировано с общим числовым форматом спецификатор ("G") и NumberFormatInfo для текущей культуры."
на ToString
реализация всех встроенных классов и числовых типов использует по умолчанию CultureInfo.CurrentCulture
культура, культура, используемая текущим потоком.
это означает, что текущая культура (и, следовательно, ваши функции форматирования и синтаксического анализа строк) будет отличаться от одной системы к другой. На мой взгляд, это дизайнерская ошибка, и она уже кусала людей в прошлом. Это должны дефолт в InvariantCulture
и дать одинаковые результаты в разных системах, но к сожалению это не так.