Кто-нибудь может привести пример, демонстрирующий использование инвариантной культуры ? Я не понимаю, что описывает документация.
.net
globalization
Рики
источник
источник
Ответы:
Инвариантная культура - это особая культура, которая полезна, потому что она не изменится. Текущая культура может меняться от одного пользователя к другому или даже от одного запуска к другому, поэтому вы не можете полагаться на то, что он останется прежним.
Возможность использовать одну и ту же культуру каждый раз очень важна для нескольких потоков, например, для сериализации: вы можете иметь значение 1,1 в одной культуре и 1,1 в другой. Если вы попытаетесь разобрать значение «1,1» во второй культуре, то синтаксический анализ завершится неудачно. Однако вы можете использовать инвариантную культуру для преобразования числа в строку и последующего анализа его с любого компьютера с любым набором культур.
источник
System.Globalization
пространстве имен.CultureInfo.InvariantCulture
работает, потому что вы сериализовали с той же культурой .... тогда разве это не то же самое, что использованиеCultureInfo.CurrentCulture
?CultureInfo.InvariantCulture
то вы знаете, что вы всегда сможете разобрать обратно в десятичную с использованиемCultureInfo.InvariantCulture
. Если вы используетеCultureInfo.CurrentCulture
для сериализации, ваш пользователь может иметь «en-US» в качестве своей текущей культуры. У следующего пользователя, который переходит к анализу до десятичного числа, может существовать текущая культура, которая использует «,» для разделителя.Поддельная культура, основанная на английском языке с определенным поведением. Отлично, например, записывать вещи в конфигурационные файлы, чтобы их можно было читать и записывать независимо от культуры, определенной пользователем.
По сути, это особая культура, которая является искусственной и не изменится .
источник
Он используется для вещей, которые одинаковы, независимо от культуры (это не нужно переводить в какую-то культуру X, чтобы соответствовать)
как для примера - https://msdn.microsoft.com/en-us/library/4c5zdc6a(v=vs.100).aspx . Когда вы записываете файл приложения, с которым пользователь не должен связываться, вы должны использовать InvariantCulture для всех методов, которые принимают параметр культуры.
Обратите внимание, что согласно документам, указанным выше:
источник
Инвариантная культура нечувствительна к культуре; это связано с английским языком, но не с какой-либо страной / регионом.
CultureInfo.InvariantCulture извлекает экземпляр инвариантной культуры. Его можно использовать практически в любом методе пространства имен System.Globalization, для которого требуется культура.
Объекты, возвращаемые свойствами, такими как CompareInfo, DateTimeFormat и NumberFormat, также отражают правила сравнения строк и форматирования инвариантной культуры. Свойство InvariantCulture пригодится, когда вы хотите отобразить постоянные данные в независимом от культуры формате.
Например, если вы хотите отобразить число или дату в определенном формате, не зависящем от текущей культуры приложения, вы можете использовать CultureInfo.InvariantCulture .
источник
Это универсальный простой не регионально-специфический английский язык и другая связанная информация. Это как язык самого языка программирования. Вы можете положиться на него при настройке универсального календаря; в ситуации, когда вам нужно генерировать имена контроллеров, URL, имена делегатов ... и т. д. и нужны вещи, чтобы действовать естественно и универсально среди всех пользователей.
источник