gpt4 book ai didi

.net - 文化和 UICulture 有什么区别?

转载 作者:行者123 更新时间:2023-12-04 22:18:03 25 4
gpt4 key购买 nike

有人能给我更多关于 Culture 之间区别的信息吗?和 UICulture在.NET 框架内?他们做什么以及何时使用什么?

最佳答案

Culture影响文化相关数据(日期、货币、数字等)的呈现方式。下面是几个例子:

var date = new DateTime(2000, 1, 2);
var number = 12345.6789;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
Console.WriteLine(date); // 02.01.2000 00:00:00
Console.WriteLine(number.ToString("C")); // 12.345,68 €

Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-CA");
Console.WriteLine(date); // 2000-01-02 00:00:00
Console.WriteLine(number.ToString("C")); // 12 345,68 $

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
Console.WriteLine(date); // 1/2/2000 12:00:00 AM
Console.WriteLine(number.ToString("C")); // $12,345.68

文化也以同样的方式影响用户输入的解析:
const string numberString = "12.345,68";
decimal money;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // OK!

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // FormatException is thrown, TryParse would return false

请注意解析成功但结果与您预期不同的情况。
const string numberString = "12.345";
decimal money;

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");
money = decimal.Parse(numberString); // 12345

Thread.CurrentThread.CurrentCulture = new CultureInfo("en-US");
money = decimal.Parse(numberString); // 12.345, where the . is a decimal point
UICulture影响应用程序将加载到哪个资源文件 (Resources.lang.resx)。

因此,要加载德语资源(可能是本地化文本),您需要设置 UICulture到德国文化并显示德国格式(对加载的资源没有任何影响),您可以设置 Culture .

关于.net - 文化和 UICulture 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9507582/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com