我在项目中使用了double.parse,现在发现了其他用户遇到问题的问题。
我应该使用:
double.parse(string, CultureInfo.InvariantCulture);
随处可见。
我可以更改double.parse
的行为,还是我真的需要转到代码中的所有位置并手动执行此操作?
答案 0 :(得分:5)
不,你不能覆盖静态方法。
您必须手动重构代码才能使用double.Parse
的正确重载。
答案 1 :(得分:3)
可以使用
覆盖整个应用程序的文化Application.CurrentCulture = System.Globalization.CultureInfo.InvariantCulture;
在应用程序的主要方法中。
因此,所有double.Parse(string)
现在都等于double.Parse(string, CultureInfo.InvariantCulture)
,因为它在内部使用invariant culture。
但要注意,它会改变使用格式化的一切
这意味着,double.ToString()
也使用了不变文化
如果这是一个问题,那么你必须更换double.Parse(string)
的每一次出现
按double.Parse(string, CultureInfo.InvariantCulture)
!