CurrentUICulture和新创建的CultureInfo实例
本文关键字:CultureInfo 实例 创建 新创建 CurrentUICulture | 更新日期: 2023-09-27 18:25:04
我正试图找出程序的语言,并更改此语言的字符串
CultureInfo culture = new CultureInfo("en");
CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;
string msg="";
if (currentCulture == culture)
{
msg = "Some words";
}
即使区域性和currentCulture的值相同,if
语句也不起作用,我的消息字符串也没有更改。
这是我的调试结果
名称--值--类型
区域性--{en}--System.Globalization.CultureInfo
currentCulture--{en}--System.Globalization.CultureInfo
CultureInfo
是一个没有覆盖Equals()
的引用类型,因此两个单独的实例总是不相等的。
这段小代码将打印错误:
var c1 = new CultureInfo("en");
var c2 = new CultureInfo("en");
Console.WriteLine(c1 == c2);
你可以在一个属性上进行比较,Name
和LCID
似乎是不错的候选者。
您的区域性可以表示为en-Us
。首先调试代码。这可能就是问题所在。
CultureInfo
是一个类,因此它是引用类型。当您将两个不同的引用与==
进行比较时,它总是返回false
。例如,您可以尝试根据它们的CultureInfo.Name
属性对它们进行比较。喜欢
if(currentCulture.Name == culture.Name)
{
msg = "Some words";
}