2013-04-04 64 views
11

我想我理解CultureInfo的用法。ToString()默認CultureInfo

如果我做簡單:

const int a = 5; 
string b = a.ToString(); 

是它等於:

const int a = 5; 
string b = a.ToString(CultureInfo.InvariantCulture); 

換句話說,在默認情況下使用InvariantCulture的的CurrentCulture或同樣沒有toString()方法?

回答

18

ToString將使用CurrentCulture而不是InvariantCulture如果您不指定文化。

2

ToString實現所有內置類和數字類型默認使用CultureInfo.CurrentCulture culture,這是當前線程使用的文化。

這意味着當前的文化(以及因此您的字符串格式和解析功能)將從一個系統到另一個不同。在我看來,這是一個設計錯誤,並且它曾經讓人們感到困擾。它應該默認爲InvariantCulture並在系統中給出相同的結果,但不幸的是它不。