十进制的类型不是特定于区域性的
本文关键字:区域性 类型 十进制 | 更新日期: 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()
方法,而不是十进制类型。