繁体   English   中英

.ToString() 和 .ToString(CultureInfo.CurrentCulture)

[英].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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM