2014-09-25 100 views
2

我有以下代碼拋出異常:RegionInfo在Windows 8.1的應用程序

var culture = CultureInfo.CurrentUICulture; 
var regionInfo = new RegionInfo(culture.TwoLetterISOLanguageName); 

如果CurrenUiCulture是希伯來語ISOLanguageName「他」拋出一個異常

該地區的名字,他不應該對應於中性文化;一個 特定的文化名稱是必需的。

它適用於其他文化,如阿拉伯,西班牙,中國......有什麼不對?

回答

2

he是一個區域中性培養如圖由此代碼

new CultureInfo("he").IsNeutralCulture; // true 

RegionInfo,其採用int構造字以不同的方式,我發現更容易理解該異常。

new RegionInfo(new CultureInfo("he").LCID) // Culture ID 13 (0x000D) is a neutral culture; a region cannot be created from it. 

請嘗試更具體的文化名稱,例如he-il以色列。

new RegionInfo("he-il")不會引發異常。

至於你的其他例子...

  • es既是西班牙語的區域中性語言代碼和西班牙(RegionInfo also accepts a country code)國家代碼所以這就是爲什麼它的工作原理
  • ar既是阿拉伯語的地區中立語言代碼和阿根廷的國家代碼(所以它「工作」,但你不會得到預期的結果)
  • zh是中國區域中立的代碼,它不應該工作。雖然如果你嘗試cn它工作,因爲它是國家代碼。
+0

如何將中立文化轉換爲特定文化?我也有同樣的問題。 – 2015-05-21 15:00:06

+0

沒有簡單的轉換。一種中立文化對應於許多具體的文化。 – Vache 2015-05-21 21:26:21

相關問題