我们有一些代码正在尝试替换以解决本地化问题。基本上我需要替换看起来像这样的代码:
var x = Convert.ToDouble("5");
用这个:
var x = Convert.ToDouble("5",CultureInfo.InvariantCulture);
我认为可能有一个RegEx表达式可以帮助我在Visual Studio中进行查找和替换搜索。有什么想法吗?
答案 0 :(得分:4)
编写一个能正确解析C#代码的正则表达式很困难(不可能?)。您可以尝试这样做,但它不会在每种情况下都有效,例如当表达式包含嵌套括号时:
{Convert.ToDouble\([^,]+}\)
\1, CultureInfo.InvariantCulture)
稍微不同的方法是让编译器为您解析代码,暂时将此类添加到项目中:
namespace System
{
static class Convert
{
[Obsolete]
public static double ToDouble(object o)
{
throw new NotImplementedException();
}
public static double ToDouble(object o, CultureInfo ci)
{
throw new NotImplementedException();
}
}
}
然后,您可以修复有关使用过时方法的警告,最后删除临时类。