我有一个方法ErrorLog()
,它被调用了大约200次并且有4个参数。
现在我想再添加一个参数。但是当我这样做时,有200多个错误。新参数的类型为Exception e
。
我可以去每个方法电话&添加一个Exception e
的参数,但这需要很多时间。
有什么简单的方法吗?
我正在使用VS 2015 Professional。
新参数不是可选的。我需要在每次通话时传递它。
答案 0 :(得分:5)
您有两个(实际上是三个)机会:
使用新参数
定义新的重载ErrorLog(string arg1, string arg2, string arg3, string arg4) {...}
ErrorLog(string arg1, string arg2, string arg3, string arg4, Exception e) {...}
通过这种方式,您还可以向用户提示不推荐使用仅包含四个参数的方法,因此应该使用Obsolete
- 属性进一步使用nopt。任何仍然使用“旧”行为的用户将获得编译器警告以更改方法,但是对于遗留代码,它保证可以工作(至少在给定时间内)。
但是,您应该将呼叫从旧方式重定向到新方式,为新参数提供一些默认值:
ErrorLog(string arg1, string arg2, string arg3, string arg4)
{
ErrorLog(args1, arg2, arg3, arg4, null);
}
将新参数定义为可选
ErrorLog(string arg1, string arg2, string arg3, string arg4, Exception e = null)
{
if(e == null) //...
}
更改每次调用的调用代码,Search and replace
使用regex-option使这变得相当容易:
找到:ErrorLog\((^\)*)\)
替换:ErrorLog($1, e)
答案 1 :(得分:0)
为函数的最后一个参数设置默认值,例如
function Errorlog(var1, var2, var3, var4, var5=...)
{
}
答案 2 :(得分:0)
您必须更改每个通话的通话代码。
但是 Reshapers Change_Signature提供了一种自动且简单的方法来更改方法签名并相应地更新调用。