2008-08-12 40 views
4

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

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

或者哪里的结果是无效的变种。

重构的目的是,以取代所有的呼叫通过调用ComputeResult或使用的参数,如果ComputeResult不是一个方法调用的表达,DoSomething的。

回答

5

如果我理解这个问题,那么ReSharper的调用这个 '内联方法' - 按Ctrl - [R +

+0

是否有可能没有ReSharper这样做? – Sasha 2017-09-01 14:56:42

1

当谈到重构这样,尝试ReSharper

方法名只需点击右键,单击“查找用法”,并重构,直到它无法找到任何引用。

而且如所提到的dlamblin,ReSharper的最新版本的具有内联的方法的可能性。这应该只是你所需要的。

1

我会做的simpliest方式:

  1. 命名ComputeResult方法ComputeResultX
  2. 命名DoSomething的方法ComputeResult
  3. 删除DoSomething的方法(也就是现在的ComputeResult)
  4. 重命名ComputeResultX方法回到ComputeResult

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

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

0

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

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

0

ReSharper绝对是VS 2008插入到具有重构。然而,它不会一步完成这种重构形式。您将必须重构 - >将DoSomething重命名为ComputeResult,并忽略与真实ComputeResult的冲突。然后删除DoSomething的定义。这几乎是一步。

但是也许它可以do it one step。如果我正确阅读。

1

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

至于remove方法,也不清楚如何做到这一点逐步规范重构书的说明。

我个人遵循沿着这些线的图案的东西(假设编译和运行单元测试每个步骤之间发生):

  1. 创建新的方法
  2. 删除旧的方法,改变的身体它会调用新方法
  3. 搜索所有对旧方法的引用(右键单击方法名并选择“查找所有引用”),将它们更改为调用新方法
  4. 将旧方法标记为[Obsolete ](呼吁它现在将显示为警告在生成过程中,GS)
  5. 删除旧的方法