十进制? 类型不是文化特定的

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

decimal a = 0;
a.ToString();

并且Resharper给了我下面的警告:“指定字符串文化的明确性”。 我想这是有道理的,因为有些文化可能会使用“。”。 (点)或“,”(逗号)作为小数点。

但是,以下几行代码:

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

不要提出相同的警告。 我想知道这是否是Resharper中的一个错误,或者是否存在可以为空的decimal特殊情况?


为了扩展伽马费利克斯的答案,我会假设这是因为decimal?.ToString()没有接受文化的重载。 如果你不关心文化特定的字符串,那么你就设置好了。 如果你关心,那么你应该检查一个值并使用decimal?.Value.ToString()


我相信这是因为decimal? 仅仅是Nulable<decimal>的别名,所以你要在可空类上调用ToString()方法而不是小数类型。

链接地址: http://www.djcxy.com/p/75103.html

上一篇: decimal? type is not culture specific

下一篇: Java equivalent for CultureInfo.InvariantCulture Property in C#