C# 十进制的类型不是特定于区域性的
我正在使用以下代码行将C# 十进制的类型不是特定于区域性的,c#,resharper,cultureinfo,C#,Resharper,Cultureinfo,我正在使用以下代码行将十进制转换为字符串: decimal a = 0; a.ToString(); decimal? a = 0; //a is now nullable a.ToString(); Resharper给了我以下警告:“明确指定字符串区域性”。我想这是有道理的,因为有些文化可能会使用“.”(点)或“,”(逗号)作为小数点 但是,以下代码行: decimal a = 0; a.ToString(); decimal? a = 0; //a is now nullable a
十进制
转换为字符串
:
decimal a = 0;
a.ToString();
decimal? a = 0; //a is now nullable
a.ToString();
Resharper给了我以下警告:“明确指定字符串区域性”。我想这是有道理的,因为有些文化可能会使用“.”(点)或“,”(逗号)作为小数点
但是,以下代码行:
decimal a = 0;
a.ToString();
decimal? a = 0; //a is now nullable
a.ToString();
不要给出相同的警告。我想知道这是否是Resharper中的一个bug,或者可为null的
十进制数有什么特别的地方吗?我相信这是因为decimal?
只是Nulable
的别名,所以您调用ToString()
可空类上的方法不是decimal类型。为了扩展Gama Felix的答案,我假设这是因为decimal?.ToString()
没有接受区域性的重载。如果您不关心特定于区域性的字符串,那么您已经设置好了。如果你在意的话,那么你应该检查一个值并使用decimal?.value.ToString()
它是可空的
,它的ToString()
方法上没有任何重载。只需添加默认的ToString
使用当前线程的CultureInfo
。