類別與成員重構

Visual Studio 提供多種重構功能,用於重新組織類別成員及修改方法簽名。 你可以透過 快速動作與重構 選單(按 Ctrl+.)存取這些重構。

變更方法簽章

適用於: C#,Visual Basic

這種重構功能讓你能移除、重新排序或新增方法的參數,自動更新所有呼叫站點。

  1. 將文字游標標示或置於修改方法名稱內,或其其中一種用法:

    • C#程式語言:

      標示代碼 C# 的截圖。

    • VB:

      標示程式碼截圖 Visual Basic.

  2. 接著,請做以下其中一項:

    • 鍵盤
      • Ctrl+R,再 按 Ctrl+V。 (你的鍵盤快捷鍵可能會因你選擇的設定檔而有所不同。)
      • Ctrl+觸發快速動作與重構選單,並從預覽視窗跳出視窗選擇更改簽名
    • 滑鼠
      • 選擇 編輯、 > 重構 > 、移除參數
      • 選擇 編輯 > 重構、重排序 > 參數
      • 右鍵點擊程式碼,選擇 快速動作與重構 選單,然後從預覽視窗跳出「 變更簽名 」。
  3. 在跳出的 「變更簽章 」對話框中,你可以使用右側的按鈕來更改方法簽章:

    變更簽名對話框的截圖。

    按鈕 說明
    上下 在列表中上下移動所選參數
    新增 新增參數到清單中
    Remove 將選取的參數從列表中移除
    恢復 將已劃掉的參數還原到清單中

    小提示

    在承諾之前,請使用預覽參考變更的勾選框先查看結果。

  4. 「變更簽名」對話框中選擇「新增」會開啟「新增參數」對話框。 「 新增參數 」對話方塊可讓您新增類型名稱和參數名稱。 您可以選擇使用預設值將參數設為必要或選用。 然後,您可以在呼叫現場新增值,並為該值選擇具名引數,或者您可以引入 TODO 變數。 TODO 變數會在您的程式碼中放置 TODO,以便您可以造訪每個錯誤並獨立瀏覽每個呼叫網站,並決定要傳遞的內容。 對於選擇性參數,您可以選擇完全省略呼叫站點。

    新增參數對話框截圖 - C#

  5. 當你完成參數新增後,按下 確定 鍵預覽變更內容。

    變更簽名對話框的截圖,顯示新增參數。

拉起成員

適用於: C#,Visual Basic

這種重構會將成員拉上基底型別,讓介面的其他實作也能繼承這些成員。

  1. 將游標放在實作介面的任何成員中。

  2. 按下 Ctrl+.,以觸發 [快速動作與重構] 功能表。

    拉取成員的截圖。

  3. 選擇拉 取成員至基礎類型

  4. 在對話框中,選擇你想加入所選介面的成員。

    拉動成員的截圖。

  5. 選擇 確定。 被選中的成員會被拉到介面上。

    拉動成員上線截圖已完成。

將類別抽象化

適用於: C#,Visual Basic

當你在非抽象類別中寫抽象方法時,這種重構會自動將類別標記為抽象。

  1. 把你的假棒放在抽象法上。

  2. 按下 Ctrl+.,以觸發 [快速動作與重構] 功能表。

  3. 選擇讓類別「抽象」

    「Make class abstract」的截圖。

將成員設為靜態

適用於: C#

此重構將非靜態成員轉換為靜態,透過明確顯示程式碼是隔離的,提升可讀性。

  1. 請將你的探頭放在會員姓名上。

  2. Ctrl+. (句號)即可觸發 快速動作與重構 選單。

    讓成員靜態化的截圖。

  3. 選取 [將設定為靜態]。

將本機函式轉換為方法

適用於: C#

此重構將本地函式轉換為類別方法,當函式需要在包含方法外被呼叫時非常有用。

  1. 把游標放在本地函式。

    將本地函式轉換成方法程式碼範例的截圖。

  2. 按下 Ctrl+.,以觸發 [快速動作與重構] 功能表。

    將本地函式轉換為方法程式碼修正範例的截圖。

  3. 按下 Enter 鍵即可接受重構。

    將本地函式轉換為方法結果範例的截圖。

靜態局部函數重構

適用於: C#

本節涵蓋兩個相關特性:使局部函數為靜態,以及將變數明確傳遞到靜態局部函數。

將本機函式設為靜態

這種重構會讓本地函式變得靜態,並將函式外定義的變數傳遞到函式的宣告和呼叫中。 靜態局部函式透過隔離程式碼並防止靜態函式污染類別,而靜態函式只在單一方法中被呼叫,從而提升可讀性。

  1. 把你的 Cart 放在當地功能名稱上。

  2. Ctrl+. (句號)即可觸發 快速動作與重構 選單。

    讓本地函數變靜態的截圖。

  3. 選擇 讓本地函式「靜態」。

在靜態局部函數中明確傳遞變數

這個快速動作會明確將變數傳入本地靜態函式,當你想讓本地函式保持靜態,但仍使用初始化在它之外的變數時,這很有用。

  1. 把你的插入點放在靜態局部函數中使用的變數上。

  2. Ctrl+. (句號)即可觸發 快速動作與重構 選單。

    Pass 變數在靜態本地函式中明確顯示的截圖。

  3. 選取 [在本機靜態函式中明確傳遞變數]。