我的文化信息.文化不是不变的



我遇到了一个很奇怪的问题。我的c#交互给了我:

> string.Format("{0:P1}", 0, CultureInfo.InvariantCulture)
"0.0%"

但是,在调试器中,相同的表达式会产生其他结果:

> string.Format("{0:P1}", 0, CultureInfo.InvariantCulture)
"0.0 %"

有人知道这是怎么发生的吗?

好吧,看来我把参数顺序弄乱了。我应该有

string.Format(CultureInfo.InvariantCulture, "{0:P1}", 0)

显然,编译器和运行时可以接受多余的格式参数,并且很乐意为您丢弃它们。

OP中的表达式将使用当前文化,正如@JeroenMostert所建议的那样,当前文化在框架和核心之间可能确实具有不同的语义。

相关内容

  • 没有找到相关文章

最新更新