为何仅指定国家的CultureInfo会被判定为中性区域性?
.NET中性区域性判定的疑问
我可能对中性区域性的概念理解存在偏差,但微软官方文档的定义很明确:
中性区域性是仅关联语言但不关联国家或地区的区域性,与同时关联语言和国家/地区的特定区域性不同。例如,
fr是法语中性区域性的名称,而fr-FR是法国的法语特定区域性。
按照这个定义,下面代码里的实例显然是中性区域性,实际运行结果也符合预期:
var englishCulture = new CultureInfo("en"); Console.WriteLine(englishCulture.IsNeutralCulture); // 输出 True
但仅传入国家代码创建的实例,按道理不该是中性区域性,可实际判定结果却是True:
var greatBritainCulture = new CultureInfo("GB"); Console.WriteLine(greatBritainCulture.IsNeutralCulture); // 输出 True
US等其他国家代码也存在同样的情况。当然,像en-GB这种同时指定语言和国家的区域性实例,结果符合预期,返回False:
Console.WriteLine(new CultureInfo("en-GB").IsNeutralCulture); // 输出 False
为什么仅指定国家代码的实例会被判定为中性区域性?
内容的提问来源于stack exchange,提问作者Tim Schmelter
相关产品推荐
相关产品推荐

