指定CurrentCulture或InvariantCulture並且根本不指定文化的最佳做法是什麼?什麼時候應該指定CurrentCulture或InvariantCulture,什麼時候應該讓它不指定?
從我讀過的內容來看,例如,如果要進行序列化,則需要InvariantCulture作爲指定數據值標準表示的手段。這是基於文化的字符串操作的相對較小比例。
我覺得很長,冗長和醜陋的大部分時間,我每次做的時候指定它,說:
var greeting = string.Format(CultureInfo.CurrentCulture, "Hello ", userName);
然而,我的團隊最近打開的FxCop上,現在有一個推總是使用CultureInfo無處不在。結合簡潔性,可讀性和功能性的最佳技術是什麼?
一些很好的閱讀材料:
@Reed Copsey:我還發現,將它作爲FxCop反射文件添加到其他地方會產生錯誤 - 我曾多次看到錯誤的文化選項被指定的情況。這顯然只是一個教育問題,但當FxCop這樣的事情告訴你要做的事情時卻經常發生,但你不一定明白爲什麼。 – 2010-07-12 19:19:55
@ Scott:真的。但編程中的一切都是這種情況 - 如果你要使用它,你需要了解它,否則它會咬你。進行本地化的唯一理想方式是在您第一次編寫代碼時考慮它 - 對完成的產品進行本地化是最糟糕的工作之一,從一開始就比從頭開始考慮要昂貴一個數量級。 – 2010-07-12 19:35:54
我不同意。我會把文化放在我班的所有ToString()中嗎?我認爲邏輯和對象應該不瞭解文化。 – onof 2010-07-12 19:40:48