Mar*_*ris 3 .net c# cultureinfo
我在CultureInfo类中发现了一件有趣的事情.我在ASP.NET中编写了一个应用程序,我正在使用Thread.CurrentThread.CurrentCulture
当前选择的语言,并且:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo(alias);
Run Code Online (Sandbox Code Playgroud)
有两个地方我可以在一个地方设置当前线程的文化,就像这样:
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru");
Thread.CurrentThread.CurrentCulture = CultureInfo.GetCultureInfo("ru-RU");
然后我突然发现文化(1)与文化(2)不同,但两者都是俄语.
我做错了还是微软喝醉了?
编辑
@Tim Schmelter
var culture = CultureInfo.GetCultureInfo("ru");
var culture2 = CultureInfo.GetCultureInfo("ru-RU");
if (Equals(culture, culture2))
{
Console.Write(true);
return;
}
Console.Write(false);
Run Code Online (Sandbox Code Playgroud)
问题是 - "为什么微软将"ru"和"ru-RU"分开?
该ru
文化是中性的,这意味着它不能在格式化和分析使用.的ru-RU
文化,而另一方面,是具体的(演示#1),所以你可以用它来格式化和分析数据.
除此之外,尝试将中立文化设置为线程的当前文化会导致异常(Mono上的演示#2,不会在.NET 4.5上崩溃).
归档时间: |
|
查看次数: |
8676 次 |
最近记录: |