2008-08-12 78 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. 刪除舊的方法