繁体   English   中英

ToString()默认CultureInfo

[英]ToString() default CultureInfo

我想我理解CultureInfo的用法。

如果我做的很简单:

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

它等于:

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

换句话说,ToString()默认使用InvariantCultureCurrentCulture吗?

如果您未指定文化, ToString将使用CurrentCulture ,而不是InvariantCulture

未指定时,ToString()使用CurrentCulture

请参阅: http//msdn.microsoft.com/en-us/library/6t7dwaa5(v = vs.85).aspx

“返回值的格式为通用数字格式说明符(”G“)和当前文化的NumberFormatInfo。”

所有内置类和数值类型的ToString实现默认使用CultureInfo.CurrentCulture文化 ,即当前线程使用的文化。

这意味着当前文化(以及因此您的字符串格式化和解析功能)将因系统而异。 在我看来,这是一个设计错误,它在过去曾经被人咬过。 应该默认为InvariantCulture并在系统间提供相同的结果,但不幸的是它没有。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM