Visual studio 替换对另一个的方法调用
我需要将Visual studio 替换对另一个的方法调用,visual-studio,visual-studio-2010,resharper,resharper-6.0,Visual Studio,Visual Studio 2010,Resharper,Resharper 6.0,我需要将obj.Method1()的所有文档替换为obj.Method2(),其中obj是同一类的实例。ReSharper或VS2010允许这样做吗?我会作弊-进行三点符号重命名(右键单击->重命名方法名称) 方法1->Temp 方法2->方法1 临时->方法2 所有这些都不会改变代码功能,但会更新所有代码以使用正确的名称,除了方法本身现在命名不正确-只需手动将方法重命名为,瞧-有点老套,但快速有效 这确实依赖于托管代码中的所有方法调用(以便VS知道如何/重命名什么)。如果您有XML注释,C
obj.Method1()
的所有文档替换为obj.Method2()
,其中obj
是同一类的实例。ReSharper或VS2010允许这样做吗?我会作弊-进行三点符号重命名(右键单击->重命名方法名称)
- 方法1->Temp
- 方法2->方法1
- 临时->方法2
这还假设方法签名是相同的(如果不是,准备大量的复制/粘贴)您可以编写一个ReSharper替换模式(ReSharper->Tools->Pattern Catalog,Add Pattern),如下所示: 其中表达式obj的类型需要更改为类(包含Method1) 然后按保存,然后按立即搜索以获取所有Method1()调用:
然后单击替换,所有Method1调用都被安全地替换为Method2。使Method1的主体如下
public void Method1(...) { return Method2(...); }
并在Method1上调用重构“Inline method”。ReSharper对VB的支持越来越接近对C#的支持,至少在很多方面是这样。我考虑过这一点,但希望在VS或R#中有类似“替换方法调用”的动作:)@Dan我不知道-自从我在VB中尝试了一段时间之后,我得再转一圈太棒了!谢谢你的主意!好主意,但在我的情况下,我需要保留这两种方法,而不替换它们的功能。