2013-04-04 69 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并在系统中给出相同的结果,但不幸的是它不。