我使用以下代码行将 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/

10-13 03:34