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
所有这些都不会改变代码功能,但会更新所有代码以使用正确的名称,除了方法本身现在命名不正确-只需手动将方法重命名为,瞧-有点老套,但快速有效

这确实依赖于托管代码中的所有方法调用(以便VS知道如何/重命名什么)。如果您有XML注释,C#rename可以很好地处理这一点,但VB不能-我想既然您提到了ReSharper,那么您使用的是C#


这还假设方法签名是相同的(如果不是,准备大量的复制/粘贴)

您可以编写一个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中尝试了一段时间之后,我得再转一圈太棒了!谢谢你的主意!好主意,但在我的情况下,我需要保留这两种方法,而不替换它们的功能。