3

有沒有辦法在Visual Studio中執行「提取方法」重構的相反方法?相反的提取方法重構

我有一個遺留的代碼庫,有大約50個非常短的私有函數,每個函數只使用一次,而且我的任務是內聯它們。

如果自動內聯重構不可行,是否可以減少內聯這些函數調用所花費的時間?我目前的工作流程是:

  • 複製函數中的代碼。
  • 找到它被調用的地方。
  • 將函數調用替換爲複製的代碼。
  • 從函數中替換局部變量名稱。
  • 刪除該功能。

回答

5

您正在尋找的重構被稱爲"Inline Method"

在Visual Studio中沒有提供這個重構開箱即用,您可以通過安裝擴展Jetbrains ReSharper爲Visual Studio訪問它(和許多其他有用的重構)。

安裝了擴展程序後,您只需單擊方法聲明或方法調用,然後調用'Inline Method'重構。這將自動內聯所有出現的方法並將其刪除。

-1

您可能會考慮將函數收集到頭文件中並用inline對它們進行裝飾。我意識到這不完全是你問的答案,但可能是你的問題的更好的解決方案,因爲這樣編譯器會執行內聯(如果它認爲合適的話)。

它取決於情況,但保留函數定義可能會導致代碼更加清晰,因此即使只調用一次也可能具有價值。

與手動「內聯方法」重構相比,這也更快更容易出錯。