c# - CurrentUICulture 和新创建的 CultureInfo 实例

标签 c# globalization

我正在尝试找出程序的语言并为该语言更改我的字符串

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);

您可以比较属性,NameLCID 似乎是不错的选择。

关于c# - CurrentUICulture 和新创建的 CultureInfo 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17875699/

相关文章:

c# - AggregationContainer与AggregationDescriptor

c# - 从阅读器打印出多行

c# - Windows Phone - 使用互斥锁进行独立存储

asp.net-mvc-3 - ASP.NET MVC 3 : - Using database instead of resource files as the localization store

reportviewer - 如何以编程方式设置报表查看器的报表语言?

c# - 使用 JSON.NET 解析嵌套的 JSON 对象

c# - 如何将空间 ""作为 char 获取?

android - 如何为每种语言(Cordova 到 Android)起一个 APP 名称

asp.net - 如何根据 UICulture 设置进行 URL 路由?

asp.net - IIS 区域设置