例如,我必须在每个数字中使用.ToString(CultureInfo.CurrentCulture)
进行字符串转换。我可以以某种方式覆盖.ToString()
,这样我就不会在字符串转换中再收到像区域性这样的消息了吗?
例如,现在我必须更改每一个
myNumValue.Count.ToString();
to
myNumValue.Count.ToString(CultureInfo.CurrentCulture);
此规则的要点是对每个格式化和解析操作都进行区域性的[[explicit选择。如果您试图系统地交换实现以“欺骗”规则,那么您将最终无所适从。正如Lonli-Lokli所建议的那样,如果您不喜欢阅读带有区域性参数的ToString
调用,则可能要考虑使用扩展方法,但是对于所支持的每种区域性都应该有不同的扩展方法。例如:ToUIString()
-> ToString(CultureInfo.CurrentCulture)
和ToInvariantString()
-> ToString(CultureInfo.InvariantCulture)
ToString()
替换ToString(CultureInfo.CurrentCulture)
没有任何意义,因为这正是ToString()
已经做的。如果您没有在代码中放入定义的区域性(可能是通过用户选择),则只需遵循第一种方法。