2010-02-09 85 views
1

我認爲以下代碼是正確的,culture fallback

CultureInfo culture = CultureInfo.GetCulture(「en-US」); Assert.IsTrue(culture.GetConsoleFallbackUICulture()==名稱 「EN」);

但它不是,culture.GetConsoleFallbackUICulture()。名稱仍是「EN-US」,我想知道是什麼讓回退區域性的API。

感謝 傑夫

+1

我認爲下面的代碼是淨?請正確標記。 – 2010-02-09 15:01:05

回答

3

這是正確的,EN-US不需要回退,這就是爲什麼它返回EN-US。

在此列表中只有文化受到影響:http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.getconsolefallbackuiculture.aspx

編輯:如果你想要做什麼在你的評論,請使用CultureInfo.Parent屬性。

+0

謝謝,但我想模仿.NET區域性後備的行爲,我想cutlure「EN-US」的母公司cutlure,我認爲它是‘恩’和‘EN’的母公司是Cutlure.InvariantCulture,我如何實現這一目標? – Jeff 2010-02-09 15:04:55

+0

請編輯您的原始問題...我更新了我的答案。 – 2010-02-09 15:08:33

1
CultureInfo culture = CultureInfo.GetCulture("en-US"); 
Assert.IsFalse(culture.Parent.IsNeutralCulture); // en-US is NOT Neutral 
Assert.IsTrue(culture.Parent.Name == "en"); // Our parent's culture is the neutral english culture 
Assert.IsTrue(culture.Parent.IsNeutralCulture); // en is Neutral 
Assert.IsTrue(culture.Parent.Parent.Name == ""); // Our grandparent's culture is the invariant culture