[英].ToString() and .ToString(CultureInfo.CurrentCulture)
例如,我必须在每个数字中使用.ToString(CultureInfo.CurrentCulture)
到字符串转换。 我可以以某种方式覆盖.ToString()
以便我不会在字符串转换中显式地获得更多类似文化的消息吗?
例如,现在我必须改变每一个
myNumValue.Count.ToString();
到
myNumValue.Count.ToString(CultureInfo.CurrentCulture);
用ToString(CultureInfo.CurrentCulture)
替换ToString()
没有任何意义,因为这正是ToString()
已经做到的。
如果您没有将定义的文化(可能通过用户选择)放入您的代码中,只需坚持使用第一种方法。
这条规则的重点是为每个格式化和解析操作做出明确的文化选择。 如果您尝试系统地交换实现以“欺骗”规则,您最终只会将潜在问题扫地出门。 正如 Lonli-Lokli 所建议的,如果您不喜欢阅读带有文化参数的ToString
调用,您可能需要考虑使用扩展方法,但您应该为支持的每种文化使用不同的扩展方法。 例如: ToUIString()
-> ToString(CultureInfo.CurrentCulture)
和ToInvariantString()
-> ToString(CultureInfo.InvariantCulture)
如果您指的是来自代码分析的消息,那么您可以禁用特定规则。
您可以创建扩展方法 ToStringEx 并调用具有指定区域性的常用方法。
您可以编写一个 ToStringInvariant 和一个 ToStringCurrent 扩展方法,为每种类型转换一个覆盖:int、double、decimal 等。复制和粘贴只需几分钟。 DateTime 最终可以以相同的方式处理。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.