我正在运行ReSharper的Beta版,它为以下代码提供警告:
int id;
// ...
DoSomethingWith(id.ToString());
该警告正在发生id.ToString()
,它告诉我“在字符串转换中明确指定区域性”。我理解警告,并且知道如何解决-只是将代码更改为更加笨拙id.ToString(CultureInfo.InvariantCulture)
。
但是我的问题是:那有必要吗?我的意思是,当您使用类似DateTime
(不同的区域性具有不同的日期格式)和Double
(不同的字符用于小数点)类型时,指定区域性很重要。但是Int32.ToString()
,至少在美国和不变文化中,根本没有添加任何格式。没有逗号,没有小数点,没有美元符号,什么都没有。那么根据文化的不同会有什么变化?
当您调用无参数时,是否存在某些文化实际上会添加某种格式Int32.ToString()
?还是这是ReSharper Beta中的错误,并且此警告确实不适用Int32
(在这种情况下,我将提交ReSharper错误报告)?