我正在使用以下代码行将decimal
转换为string
:
decimal a = 0;
a.ToString();
和Resharper给了我以下警告:“指定字符串文化表达”。我想这是有道理的,因为有些文化可能会使用“。” (点)或“,”(逗号)作为小数点。
但是,以下代码行:
decimal? a = 0; //a is now nullable
a.ToString();
不要出现相同的警告。我想知道这是否是Resharper中的一个错误,或者是否有一个关于可以为空的decimal
的特殊内容?
答案 0 :(得分:6)
为了扩展Gama Felix的答案,我认为这是因为decimal?.ToString()
没有超载可以接受文化。如果你不关心文化特定的字符串,那么你就设置了。如果你做关心,那么你应该检查一个值并使用decimal?.Value.ToString()
。
答案 1 :(得分:3)
我认为这是因为decimal?
只是Nulable<decimal>
的别名,所以你在可空类上调用ToString()
方法而不是小数类型。