我正在尝试找出程序的语言并为该语言更改我的字符串
CultureInfo culture = new CultureInfo("en");
CultureInfo currentCulture = Thread.CurrentThread.CurrentUICulture;
string msg="";
if (currentCulture == culture)
{
msg = "Some words";
}
即使 culture 和 currentCulture 的值相同,if
语句也不起作用,我的 msg 字符串也没有改变。
这是我的调试结果
名称--值--类型
文化 -- {zh} -- System.Globalization.CultureInfo
currentCulture -- {en} -- System.Globalization.CultureInfo
最佳答案
CultureInfo
是一个没有覆盖 Equals()
的引用类型,所以 2 个单独的实例总是不相等的。
这段代码将打印False:
var c1 = new CultureInfo("en");
var c2 = new CultureInfo("en");
Console.WriteLine(c1 == c2);
您可以比较属性,Name
和 LCID
似乎是不错的选择。
关于c# - CurrentUICulture 和新创建的 CultureInfo 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875699/