十进制类型不受文化影响。

4

我正在将一个decimal转换为string,使用以下代码:

decimal a = 0;
a.ToString();

Resharper给我一个警告:“明确指定字符串文化”。

我猜这是有道理的,因为有些地区使用“。”或“,”作为小数点。

然而,以下代码行:

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

不要出现相同的警告。我在想这是否是Resharper中的一个bug,还是nullable decimal有什么特殊之处?

2个回答

6
扩展Gama Felix的答案,我认为这是因为decimal?.ToString()没有重载可以接受区域设置。如果你不关心区域特定的字符串,那么你就可以了。如果你关心,那么你应该检查值并使用decimal?.Value.ToString()

只是补充一下,默认的 ToString 使用当前线程的 CultureInfo - AakashM

3

我认为这是因为decimal?只是Nulable<decimal>的别名,所以您调用的是可空类的ToString()方法而不是十进制类型。


1
е®ғжҳҜNullable<T>пјҢе…¶ToString()ж–№жі•жІЎжңүд»»дҪ•йҮҚиҪҪгҖӮ - Equalsk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接