十进制? 类型不是文化特定的
我使用以下几行代码将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()
方法而不是小数类型。
上一篇: decimal? type is not culture specific
下一篇: Java equivalent for CultureInfo.InvariantCulture Property in C#