十进制?类型不是特定于文化的

Man*_*eis 4 c# resharper cultureinfo

我使用以下代码行将a转换decimal为a string:

decimal a = 0;
a.ToString();
Run Code Online (Sandbox Code Playgroud)

和Resharper给了我以下警告:" 指定字符串文化表达 ".我想这是有道理的,因为有些文化可能会使用"." (点)或","(逗号)作为小数点.

但是,以下代码行:

decimal? a = 0; //a is now nullable
a.ToString();
Run Code Online (Sandbox Code Playgroud)

不要出现相同的警告.我想知道这是否是Resharper中的一个错误,或者是否有关于可空的特殊内容decimal

Glo*_*oot 6

为了扩展Gama Felix的答案,我认为这是因为decimal?.ToString()没有可以接受文化的超载.如果你不关心文化特定的字符串,那么你就设置了.如果你护理,那么你应该检查的价值和用途decimal?.Value.ToString().