.net 区域性不变对象ToString()
如何对对象调用.net 区域性不变对象ToString(),.net,formatting,culture,cultureinfo,.net,Formatting,Culture,Cultureinfo,如何对对象调用ToString(),并使其使用不变区域性? 在实现IConvertible的对象上有ToString()的重载(如bool、int、float…),但是如果所讨论的对象不是IConvertible,该怎么办?我认为IFormattable是相关的接口。它有一个ToString方法,允许您指定格式提供程序,格式提供程序可以是区域性。系统。Convert类有一个静态ToString重载,它接受一个对象 Convert.ToString(obj, CultureInfo.Invaria
ToString()
,并使其使用不变区域性?
在实现
IConvertible
的对象上有ToString()
的重载(如bool、int、float…),但是如果所讨论的对象不是IConvertible
,该怎么办?我认为IFormattable
是相关的接口。它有一个ToString
方法,允许您指定格式提供程序,格式提供程序可以是区域性。系统。Convert类有一个静态ToString
重载,它接受一个对象
Convert.ToString(obj, CultureInfo.InvariantCulture);
基于,这大约是string.Format(CultureInfo.InvariantCulture,“{0}”,value)
的两倍,更重要的是,它看起来更干净。但是,如果您已经在构建字符串,我建议您使用FormattableString.Invariant
FormattableString.Invariant($"Object value: {obj}")
由于区域性是一种格式提供程序,您可以将其与String.format(CultureInfo.InvariantCulture,{0},value)一起使用请使用String
而不是推荐的String
。@nitzel:C#不是.NET Framework中唯一的语言。“而且看起来更干净”如果开始时字符串插值要转义多个项,则不会。使用string.Format
,它可以一次完成所有操作。@jeromej:这是一个很好的观点,不过如果您使用字符串插值,我建议使用FormattableString.Invariant
,以提高可读性。我相应地更新了我的答案。