Что такое инвариантная культура?



может ли кто - нибудь привести пример, чтобы продемонстрировать использование Инвариантного? Я не понимаю, что описывает документация.

623   4  

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

    Ничего не найдено.