是否有任何 Visual Studio 插件可以进行删除方法重构?
假设您有以下方法:

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

或者结果为空的变体。

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

有帮助吗?

解决方案

如果我理解这个问题,那么 Resharper 会将此称为“内联方法” - 控制键 - +

其他提示

我会用最简单的方式来做:

  1. 将 ComputeResult 方法重命名为 ComputeResultX
  2. 将 DoSomething 方法重命名为 ComputeResult
  3. 删除 DoSomething 方法(现在是 ComputeResult)
  4. 将 ComputeResultX 方法重命名回 ComputeResult

也许VS会因为上次重命名而显示一些冲突,但忽略它。

我所说的“重命名”是指:覆盖方法的名称,然后使用下拉菜单(Shift+Alt+F10)并选择“重命名”。它将用新名称替换所有出现的情况。

有一些产品可以向 Visual Studio 2005 和 2008 添加额外的重构选项,其中一些更好的产品是 重构!专业版雷夏珀.

至于删除方法,规范的重构书中有关于如何增量执行此操作的描述。

就我个人而言,我遵循以下模式(假设编译和运行单元测试发生在每个步骤之间):

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

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

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

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

锐锐 绝对是用于重构的 VS 2008 插件。然而,它并不是一步完成这种形式的重构;您必须将 DoSomething 重命名为 ComputeResult 并忽略与真实 ComputeResult 的冲突。然后删除 DoSomething 的定义。已经快一步了。

不过也许可以 一步到位. 。如果我没读错的话。

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

我个人只会做一个 控制键 + 转移 + HFind & Replace

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top