我需要将所有出现的obj.Method1()
地方obj.Method2()
替换obj
为同一类的实例。ReSharper 或 VS2010 是否允许这样做?
问问题
886 次
3 回答
7
您可以像这样编写ReSharper 替换模式(ReSharper->Tools->Pattern Catalog、Add Pattern):
其中表达式obj的类型需要更改为您的类(包含Method1)。
然后按保存,然后按立即搜索以获取所有Method1()调用:
然后单击替换,所有Method1调用都被类型安全地替换为Method2。
于 2012-04-26T16:03:55.267 回答
4
我会作弊 - 进行 3 点符号重命名(右键单击 -> 重命名方法名称)
- 方法 1 -> 温度
- 方法 2 -> 方法 1
- 温度 -> 方法 2
这些都不会改变代码功能,但会更新所有代码以使用正确的名称,除了方法本身现在命名不正确 - 只需将方法重命名为手动和瞧- 有点hacky但快速有效。
这确实依赖于托管代码中的所有方法调用(以便 VS 知道如何/如何重命名)。如果您有 XML 注释,C# rename 可以很好地处理这个问题,但 VB 没有 - 我假设既然您提到了 ReSharper,那么您使用的是 C#?
这也假设方法签名是相同的(如果不是,准备好进行大量复制/粘贴)
于 2012-04-26T15:27:07.520 回答
0
像这样制作 Method1 的主体
public void Method1(...) { return Method2(...); }
并在 Method1 上调用重构“内联方法”。
于 2012-04-27T19:53:37.523 回答