重構 C++ 程式碼
Visual Studio Code 中的 C/C++ 擴充功能具有多種重構功能,可協助您改善程式碼的結構、可讀性和可維護性,而不會改變其執行階段行為。這些功能包括「提取方法」和「建立宣告與定義」等功能。
建立宣告或定義
透過讓 C/C++ 擴充功能為您產生函式的宣告或定義,簡化建立函式宣告或定義的流程。此功能適用於成員函式、作為類別的命名空間和範本。
若要建立函式宣告或定義,請執行下列任一項操作:
- 選取您的類別函式定義,選取程式碼動作 (燈泡圖示),然後選取 [建立宣告]。同樣地,若要建立定義,請選取函式宣告,選取程式碼動作,然後選取 [建立定義]。
- 以滑鼠右鍵按一下函式的宣告或定義,然後從內容功能表中選取 [建立定義/宣告]。系統會根據您的程式碼建立定義或宣告。
- 選取函式,然後使用 [命令面板] (⇧⌘P (Windows、Linux Ctrl+Shift+P)) 並輸入命令 Create Declaration/Definition (建立宣告/定義)。系統會根據您的程式碼建立定義或宣告。
建立定義和宣告的位置取決於您在程式碼中建立的先前模式。例如,如果您先前在同一個檔案中新增了定義和宣告,則擴充功能也會將新的定義和宣告新增至同一個檔案。函式順序會自動維護。
如果您在與來源檔案不同的檔案中定義宣告或定義,則擴充功能會遵循您的慣例。例如,對於具有相符名稱的標頭檔和來源檔案,即使標頭檔未包含在來源檔案中,系統也會識別兩者。在這種情況下,一旦新增宣告或定義,系統就會自動在您的來源檔案中參考您的標頭檔。
否則,擴充功能會為您建立一個與目前檔案名稱相符的新標頭檔或來源檔案。這個新檔案包含已產生的新宣告或定義。然後,系統會自動在您的目前檔案中參考這個新檔案。
針對範本,如果函式範本是在標頭檔中宣告,則該函式範本的定義會在同一個標頭檔中建立。這也適用於類別範本的非範本成員函式。
複製宣告或定義
如果您想要選擇在程式碼中新增宣告或定義的位置,可以使用程式碼動作 [複製宣告/定義]。這會將宣告或定義新增至剪貼簿,而不是直接新增至您的程式碼。
若要叫用程式碼動作,請選取具有可用快速修復的函式,然後選取程式碼動作 (燈泡),並選擇 [複製 ‘YourFunctionName’ 的定義] 或 [複製 ‘YourFunctionName’ 的宣告]。
提取至方法
「提取方法」重構功能可讓您將程式碼區塊提取到個別的方法中,以協助改善程式碼可讀性、減少重複並使程式碼更模組化。
若要提取方法,請選取您想要提取的 C++ 程式碼,選取程式碼動作 (燈泡),然後選取 [提取至函式]。或者,以滑鼠右鍵按一下程式碼,然後選取 [重構 > 提取],或使用鍵盤命令 (Windows 上為 Ctrl + Shift + R、Ctrl + E) 以取得更多資訊。
接著,您可以命名已建立的新函式。包含您選取程式碼的新函式會放置在目前函式的上方。
快速修復/程式碼動作
C/C++ 擴充功能會根據您的程式碼內容,提供關於如何修正和改善 C++ 程式碼的 C/C++ 特定建議。您可以將游標停留在符號上方並選取 [快速修復] 連結,或選取程式碼動作 (燈泡) (在程式碼旁邊出現時) 來檢視這些建議。例如,如果程式碼區段可以提取至方法,則選取燈泡圖示會顯示 [提取至方法]。除了上述功能之外,C/C++ 擴充功能還會在下列情況下提供快速修復/程式碼動作:
新增遺失的標頭檔
如果您的 C++ 程式碼中有不明的符號,且 C/C++ 擴充功能在您的工作區中識別出正確的標頭檔,現在有可用的快速修復。選取快速修復,必要的標頭檔 include 將會新增至您目前 C++ 檔案的頂端。
後續步驟
請繼續閱讀以了解
如果您有任何其他問題或遇到任何問題,請在 GitHub 上提交問題。系統可能會要求您提供擴充功能的記錄資訊,以協助診斷問題。如需協助提供擴充功能記錄,請參閱 C/C++ 擴充功能記錄。