Я хотел бы знать, как я могу определить, имеет ли экземпляр CultureInfo, возвращаемый CultureInfo.CurrentCulture, все значения по умолчанию или пользовательский настрой был настроен пользователем.Как определить, был ли пользователь CurrentCulture настроен пользователем?
Я провел некоторое тестирование с использованием следующего фрагмента LINQPad и LINQPad командной строки.
var ci = CultureInfo.CurrentCulture;
var dtf = ci.DateTimeFormat;
ci.Name.Dump("CultureInfo");
dtf.FullDateTimePattern.Dump("FullDateTimePattern");
dtf.LongDatePattern.Dump("LongDatePattern");
dtf.LongTimePattern.Dump("LongTimePattern");
Я выбираю английский (Южная Африка) как мой формат в диалоге области и мой сниппет сообщает следующее.
E:\Junk>lprun CurrentCulture.linq
CultureInfo: en-ZA
FullDateTimePattern: dd MMMM yyyy hh:mm:ss tt
LongDatePattern: dd MMMM yyyy
LongTimePattern: hh:mm:ss tt
Затем изменить длинный формат даты, чтобы скрыть лидирующего нуля на день и длинный и короткий промежуток времени, чтобы быть 24 часа времени. Об этом сообщает этот фрагмент.
E:\Junk>lprun CurrentCulture.linq
CultureInfo: en-ZA
FullDateTimePattern: d MMMM yyyy HH:mm:ss
LongDatePattern: d MMMM yyyy
LongTimePattern: HH:mm:ss
Несмотря на то, что названия культуры остаются теми же свойствами, которые я изменил, показывают мне новые значения.
Мой вопрос в том, есть ли одно свойство или метод, которые скажут мне, была ли культура, возвращенная CurrentCulture, изменена с ее по умолчанию (en-ZA в этом случае) или нет. Я думал, что CultureInfo.UseUserOverride может быть этим свойством, но он возвращает true в любом случае.
Я думаю, вы могли бы просто сравнить все необходимые значения между 'CurrentCulture' и культурой, которые вы * создаете * для той же локали, что и текущий. – Sinatr
Почему? В идеале ваше приложение не должно зависеть от культуры, которую пользователь установил на своей машине. – Grzenio
Да @Sinatr, я мог бы сравнивать свойства, но с классом CultureInfo, который был настолько богат, я представил себе, что он, несомненно, сможет дать мне эту информацию. –