我想我理解CultureInfo的用法。ToString()默认CultureInfo
如果我做简单:
const int a = 5;
string b = a.ToString();
是它等于:
const int a = 5;
string b = a.ToString(CultureInfo.InvariantCulture);
换句话说,在默认情况下使用InvariantCulture的或的CurrentCulture或同样没有toString()方法?
我想我理解CultureInfo的用法。ToString()默认CultureInfo
如果我做简单:
const int a = 5;
string b = a.ToString();
是它等于:
const int a = 5;
string b = a.ToString(CultureInfo.InvariantCulture);
换句话说,在默认情况下使用InvariantCulture的或的CurrentCulture或同样没有toString()方法?
ToString
将使用CurrentCulture
而不是InvariantCulture
如果您不指定文化。
的ToString()使用的CurrentCulture未指定时
参见:http://msdn.microsoft.com/en-us/library/6t7dwaa5(v=vs.85).aspx
“的返回值被格式化通用数值格式 说明符(” G“)和的NumberFormatInfo当前区域性“。
ToString
实现所有内置类和数字类型默认使用CultureInfo.CurrentCulture
culture,这是当前线程使用的文化。
这意味着当前的文化(以及因此您的字符串格式和解析功能)将从一个系统到另一个不同。在我看来,这是一个设计错误,并且它曾经让人们感到困扰。它应该默认为InvariantCulture
并在系统中给出相同的结果,但不幸的是它不。