十进制的类型不是特定于区域性的

本文关键字:区域性 类型 十进制 | 更新日期: 2023-09-27 18:21:42

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

decimal a = 0;
a.ToString();

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

然而,以下代码行:

decimal? a = 0; //a is now nullable
a.ToString();

不要发出同样的警告。我想知道这是Resharper中的一个错误,还是一个可为null的decimal有什么特别之处?

十进制的类型不是特定于区域性的

为了扩展Gama Felix的答案,我认为这是因为decimal?.ToString()没有可以接受文化的重载。如果你不关心特定于文化的字符串,那么你已经做好了准备。如果确实关心,则应检查值并使用decimal?.Value.ToString()

我相信发生这种情况是因为decimal?只是Nulable<decimal>的别名,所以您在可为null的类上调用ToString()方法,而不是十进制类型。