Visual Studio重构:删除方法

时间:2008-08-12 06:22:06

标签: visual-studio refactoring methods

是否有可以执行删除方法重构的Visual Studio加载项? 假设您有以下方法:

Result DoSomething(parameters)  
{  
    return ComputeResult(parameters);  
}  

或结果无效的变体。

重构的目的是使用对ComputeResult的调用替换对DoSomething的所有调用,或者如果ComputeResult不是方法调用则替换使用参数的表达式。

6 个答案:

答案 0 :(得分:5)

如果我理解了这个问题,那么Resharper会调用这个'内联方法' - Ctrl - R + I

答案 1 :(得分:1)

当涉及到这样的重构时,请尝试ReSharper

只需右键单击方法名称,单击“查找用法”,然后重构,直至找不到任何引用。

正如dlamblin所说,最新版本的ReSharper可以内联一种方法。这应该只是你需要的。

答案 2 :(得分:1)

我会以最简单的方式做到这一点:

  1. 将ComputeResult方法重命名为ComputeResultX
  2. 将DoSomething方法重命名为ComputeResult
  3. 删除DoSomething方法(现在是ComputeResult)
  4. 将ComputeResultX方法重命名为ComputeResult
  5. 由于上次重命名,VS可能会显示一些冲突,但忽略它。

    通过“重命名”我的意思是:覆盖方法的名称,然后使用下拉列表(Shift + Alt + F10)并选择“重命名”。它将用新名称替换所有出现的事件。

答案 3 :(得分:1)

有一些产品可用于为Visual Studio 2005添加额外的重构选项。 2008年,其中一些较好的是Refactor! ProResharper

就删除方法而言,规范重构书中有关于如何逐步执行此操作的说明。

就个人而言,我遵循这些方面的模式(假设在每个步骤之间进行编译和运行单元测试):

  1. 创建新方法
  2. 删除旧方法的主体,将其更改为调用新方法
  3. 搜索旧方法的所有引用(右键单击方法名称并选择“查找所有引用”),将它们更改为对新方法的调用
  4. 将旧方法标记为[已废弃](对其进行调用现在将在构建期间显示为警告)
  5. 删除旧方法

答案 4 :(得分:0)

您也可以右键单击方法名称,然后单击Visual Studio中的“查找所有引用”。

我个人只会做一个 CTRL + SHIFT + H Find & Replace

答案 5 :(得分:0)

ReSharper绝对是用于重构的VS 2008插件。但是,它不会一步完成这种形式的重构;您将不得不重构 - >将DoSomething重命名为ComputeResult并忽略与真实ComputeResult的冲突。然后删除DoSomething的定义。这几乎是一步。

但也许它可以do it one step。如果我读得正确的话。