7

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

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

或者 Result 无效的变体。

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

4

6 回答 6

6

如果我理解这个问题,那么 Resharper 称之为“内联方法” - Ctrl- R+I

于 2008-08-12T07:48:33.443 回答
1

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

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

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

于 2008-08-12T06:25:27.307 回答
1

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

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

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

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

于 2008-08-12T07:04:26.417 回答
1

有一些产品可以为 Visual Studio 2005 和 2008 添加额外的重构选项,其中一些更好的是Refactor!ProResharper

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

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

  1. 创建新方法
  2. 去掉旧方法的主体,改成调用新方法
  3. 搜索对旧方法的所有引用(右键单击方法名称并选择“查找所有引用”),将它们更改为对新方法的调用
  4. 将旧方法标记为 [Obsolete](对其的调用现在将在构建期间显示为警告)
  5. 删除旧方法
于 2008-08-12T07:44:42.403 回答
0

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

我个人只会做一个CTRL++SHIFTHFind & Replace

于 2008-08-12T07:19:05.250 回答
0

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

然而,也许它可以做到这一点。如果我没看错的话。

于 2008-08-12T07:35:35.030 回答