我正在运行ReSharper的测试版,它对以下代码发出警告:
int id;
// ...
DoSomethingWith(id.ToString());
警告出现在id.ToString()
调用中,它告诉我"在字符串转换中显式指定区域性".我理解这个警告,我知道如何修复它——只需将代码更改为更难处理的id.ToString(CultureInfo.InvariantCulture)
即可.
但我的问题是:这有必要吗?我的意思是,当你使用DateTime
(不同的区域性有不同的日期格式)和Double
(小数点使用不同的字符)这样的类型时,指定区域性显然很重要.但是Int32.ToString()
,至少在en-US和不变文化中,根本没有添加任何格式.没有逗号,没有小数点,没有美元符号,什么都没有.那么,不同的文化会有什么不同呢?
当你调用无参数Int32.ToString()
时,是否有一些区域性实际上是某种格式?或者这是ReSharper测试版中的一个错误,而这个警告真的不适用于Int32
(在这种情况下,我将提交一份ReSharper错误报告)?