我使用以下代码行将 decimal
转换为 string
:
decimal a = 0;
a.ToString();
和 Resharper 给了我以下警告:“明确指定字符串文化”。我想这是有道理的,因为某些文化可能使用“。” (点)或“,”(逗号)作为小数点。
但是,以下代码行:
decimal? a = 0; //a is now nullable
a.ToString();
不要出现相同的警告。我想知道这是 Resharper 中的错误,还是可空
decimal
有什么特别之处? 最佳答案
为了扩展 Gama Felix 的回答,我认为这是因为 decimal?.ToString()
没有可以接受文化的重载。如果您不关心特定于文化的字符串,那么您就可以了。如果您确实关心,那么您应该检查一个值并使用 decimal?.Value.ToString()
。
关于c# - 十进制?类型不是文化特定的,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33655800/