Что такое инвариантная культура?
может ли кто - нибудь привести пример, чтобы продемонстрировать использование Инвариантного? Я не понимаю, что описывает документация.
4 ответов:
инвариантного это особая культура, которая полезна, потому что она не изменится. Нынешняя культура может меняться от одного пользователя к другому, или даже от одного запуска к другому, поэтому вы не можете полагаться на его постоянство.
возможность использовать один и тот же язык и региональные параметры каждый раз очень важна в нескольких потоках, например, сериализации: вы можете иметь значение 1,1 в одном языке и 1,1 в другом. Если вы попытаетесь разобрать значение " 1,1 " во второй культуре, то разбор не удастся. Однако вы можете использовать инвариантный язык и региональные параметры для преобразования числа в строку и потом парсить его обратно с любого компьютера с любой культуры.
// Use some non-invariant culture. CultureInfo nonInvariantCulture = new CultureInfo("en-US"); Thread.CurrentThread.CurrentCulture = nonInvariantCulture; decimal dec = 1.1m; string convertedToString = dec.ToString(); // Simulate another culture being used, // following code can run on another computer. nonInvariantCulture.NumberFormat.NumberDecimalSeparator = ","; decimal parsedDec; try { // This fails because value cannot be parsed. parsedDec = decimal.Parse(convertedToString); } catch (FormatException) { } // However you always can use Invariant culture: convertedToString = dec.ToString(CultureInfo.InvariantCulture); // This will always work because you serialized with the same culture. parsedDec = decimal.Parse(convertedToString, CultureInfo.InvariantCulture);
поддельная культура, основанная на английском языке с определенным поведением. Отлично подходит для записи, например, материала в конфигурационные файлы, чтобы его можно было читать и записывать независимо от культуры, определенной пользователем.
в основном это специфическая культура, которая является искусственной и не изменится.
Он используется для вещей, которые одинаковы независимо от культуры (это не нужно переводить в какую-то культуру X, чтобы быть подходящим)
как для примера -https://msdn.microsoft.com/en-us/library/4c5zdc6a (v=vs.100). aspx. Когда вы записываете файл приложения, с которым пользователь не должен возиться, вы должны использовать InvariantCulture для всех методов, которые принимают параметр культуры.
обратите внимание, что в документы, связанные выше:
однако приложение должно использовать инвариантный язык и региональные параметры только для процессов, требующих независимых от языка и региональных параметров результатов, таких как форматирование и анализ данных, сохраняемых в файле.
инвариантная культура нечувствительна к культуре; она связана с английским языком, но не с какой-либо страной/регионом.Инвариантный язык и региональные параметры можно использовать для чувствительных к языку и региональным параметрам строковых операций, на которые не влияют соглашения текущего языка и региональных параметров потока и которые согласованы в разных языках и региональных параметрах.
CultureInfo.Языка и региона существует извлекает экземпляр инвариантная культура. Он может быть использован практически любой способ в Система.Глобализация пространство имен, которое требует культуры. Объект возвращается такими свойствами, как CompareInfo, DateTimeFormat и NumberFormat также отражает сравнение строк и форматирование конвенций инвариантного языка и региональных параметров.
В отличие от чувствительных к культуре данных, которые могут быть изменены пользователем настройка или путем обновления платформы .NET Framework или операционной системы система, инвариантные данные культуры стабилизирована над временем и через установленные культуры и не могут быть настроены пользователями. Этот делает инвариантные особенно полезна для операций, которые требуют культура-независимые результаты, такие как форматирование и анализ операций которые сохраняют форматированные данные или операции сортировки и упорядочения, которые требуется, чтобы данные отображались в фиксированном порядке независимо от языка и региональных параметров.
свойство InvariantCulture пригодится, когда вы хотите отобразить сохранения данных на культура-независимая.
для например, если вы хотите отобразить число или дату-время в определенном формате, независимо от текущего языка и региональных параметров приложения, вы можете использовать CultureInfo.Инвариантная культура.
Comments