Кто-либо мог дать пример для демонстрации использования Инвариантной Культуры? Я не понимаю то, что описывает документация.
Инвариантная культура - это особая культура, которая полезна, потому что она не будет меняться. Текущая культура может меняться от одного пользователя к другому, или даже от одного запуска к другому, поэтому вы не можете полагаться на то, что она останется неизменной.
Возможность использовать одну и ту же культуру каждый раз очень важна в нескольких потоках, например, в сериализации: вы можете иметь значение 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 для всех методов, которые принимают параметр культуры.
Обратите внимание, что согласно документации, указанной выше:
Однако приложение должно использовать инвариантный язык и региональные параметры только для процессов, требующих результатов, не зависящих от языка и региональных параметров, таких как форматирование и анализ данных, сохраняемых в файле.
Поддельная культура, основанная на английском языке с определенным поведением. Замечательно записывать, например, что-то в файлы конфигурации, чтобы его можно было читать и записывать независимо от культуры, определенной пользователем.
В основном это определенная культура, которая является искусственной и не изменится .