【问题标题】:ToString() default CultureInfoToString() 默认 CultureInfo
【发布时间】:2013-03-26 23:56:51
【问题描述】:

我想我了解 CultureInfo 的用法。

如果我做的很简单:

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

是否等于:

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

换句话说,默认情况下 ToString() 是使用 InvariantCulture 还是 CurrentCulture 还是都不使用?

【问题讨论】:

    标签: c# tostring cultureinfo


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      ToString() 在未指定时使用 CurrentCulture

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

      "返回值采用通用数字格式 说明符 ("G") 和当前区域性的 NumberFormatInfo。"

      【讨论】:

        【解决方案3】:

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

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-03-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-08-20
          相关资源
          最近更新 更多