【发布时间】:2011-11-19 10:47:32
【问题描述】:
如何在对象上调用ToString() 并使其使用不变的文化?
在实现IConvertible 的对象上存在ToString() 的重载(如bool、int、float..),但如果有问题的对象不是IConvertible 怎么办?
【问题讨论】:
标签: .net formatting culture cultureinfo
如何在对象上调用ToString() 并使其使用不变的文化?
在实现IConvertible 的对象上存在ToString() 的重载(如bool、int、float..),但如果有问题的对象不是IConvertible 怎么办?
【问题讨论】:
标签: .net formatting culture cultureinfo
System.Convert 类有一个静态的ToString 重载,它采用object。
Convert.ToString(obj, CultureInfo.InvariantCulture);
基于my benchmarks,这大约是string.Format(CultureInfo.InvariantCulture, "{0}", value) 的两倍,更重要的是,它看起来更干净。但是,如果您已经在构建字符串,我建议您使用 FormattableString.Invariant。
FormattableString.Invariant($"Object value: {obj}")
【讨论】:
string.Format,它可以一次性完成所有操作。
FormattableString.Invariant 以提高可读性。我相应地更新了我的答案。
我认为IFormattable是相关接口。它有一个ToString 方法,可以让您指定格式提供程序,它可以是一种文化。
【讨论】:
String.Format(CultureInfo.InvariantCulture, "{0}", value)一起使用
string,而不是String。