我使用我使用以下签名创建的方法编写了大量代码:
public void DrawString(int x, int y, string str,
TextAlignment align, Color col) { ... }
我很遗憾地订购这样的参数,并希望将签名更改为:
public void DrawString(int x, int y, string str,
Color col, TextAlignment align) { ... }
目前我正在使用这两个签名(我做了一个重载,将先前的签名传递给后者),但我想完全删除先前的签名。
我认为,重新排序参数会产生副作用,但在我的特殊情况下,它不会。尽管Visual Studio 2013似乎具有Reorder Parameters Refactoring (C#)功能,但它不能用于Express用户,因为我没有看到“重新排序参数”选项。
有没有办法在不手动更新数百个方法调用的情况下更改此参数顺序?
答案 0 :(得分:0)
我认为,重构是唯一合理的解决方案。那里你有很多选择。最明显的是:只需手动切换输入参数。在此之后,在编译期间,您将在调用DrawString
的所有地方获得错误列表。所以只需手动修复所有错误。
另一种选择:安装一些工具,提供扩展的重构功能,如ReSharper / CodeRush / JustCode。
另一个选项(你已经使用过)是重载:
public void DrawString(int x, int y, string str, Color col, TextAlignment align)
{
DrawString(x, y, str, align, col);
}
然后将原始DrawString
标记为[Obsolete]
,并在将来仅使用重载方法。但我不会这样。代码将变得非常不清楚。
如果你对我的个人意见感兴趣,那么我会选择第二种方式(使用一些可以帮助你完成日常工作的工具是个好主意)。