共用方式為


程式代碼樣式喜好設定和程式代碼清除

程式代碼樣式喜好設定可讓您控制程式代碼的各個層面,例如縮排樣式、定位寬度、行尾字元、編碼,以及其他許多格式選項。 您可以透過兩種方式定義程式代碼樣式設定:

您也可以設定 Visual Studio,以使用 程式碼清理格式化文件 命令來套用程式碼樣式偏好。

您可以使用 EditorConfig 檔案定義每個專案的程式代碼樣式設定,或針對您在 Visual Studio 中編輯之文字編輯器 .NET 選項頁面C/C++ [選項] 頁面上編輯的所有程式代碼。 針對 C# 程式代碼,您也可以使用程式 代碼清除 (Visual Studio 2019) 和 格式檔 (Visual Studio 2017) 命令來設定 Visual Studio 來套用這些程式代碼樣式喜好設定。

EditorConfig 檔案中的程式代碼樣式

您可以將 EditorConfig 檔案新增至專案,以指定程式代碼樣式設定。 EditorConfig 檔案與程式代碼基底相關聯,而不是 Visual Studio 個人化帳戶。 EditorConfig 檔案中的設定優先於 [選項] 對話框中所指定的程式代碼樣式。 當您想要針對存放庫或專案的所有參與者強制執行編碼樣式時,請使用 EditorConfig 檔案。 它們特別適合確保小組程序設計環境中的一致性。

若要新增 EditorConfig 檔案,請參閱 新增 EditorConfig 檔案的方式

如需 .NET 程式代碼樣式設定的參考資訊,請參閱 程式代碼樣式設定

[選項] 對話框中的 C/C++程式代碼樣式

您可以指定許多個別的程式代碼格式設定選項,例如縮排和大括弧位置。 若要這樣做,請移至 [工具>選項>] 文字編輯器>C/C++>[程式代碼樣式>格式] (或輸入 Ctrl + Q 並搜尋 [格式] 。 或者,您可以指定其中一個 ClangFormat 樣式(或您自己的自定義 ClangFormat 樣式)。

[選項] 窗格的螢幕快照,其中含有文本編輯器。

您可以指定許多個別的程式代碼格式設定選項,例如縮排和大括弧位置。 若要這樣做,請移至 工具>選項>文本編輯器>C/C++>Formatting (或輸入 Ctrl + Q 並搜尋 「格式化」)。 或者,您可以指定其中一個 ClangFormat 樣式(或您自己的自定義 ClangFormat 樣式)。

如需所有格式化選項的詳細資訊,請參閱 選項、文本編輯器、C/C++、格式化

[選項] 對話框中的 .NET 程式代碼樣式

您可以從 [工具] 功能表開啟 [選項] 對話框,來設定所有 C# 和 Visual Basic 專案的程式代碼樣式喜好設定。 在 [選項] 對話框中,選取 [文本編輯器> [C#Visual Basic] > 程式代碼樣式

  • 針對格式化樣式,請選取 [格式化] 下方的選項。
  • 針對與 快速動作 和 IDE 程式代碼樣式規則相關聯的程式代碼樣式喜好設定,請選取 [ 一般 ] 或 [ 命名] 底下的選項。

您可以從 [工具] 功能表開啟 [選項] 對話框,來設定所有 C# 和 Visual Basic 專案的程式代碼樣式喜好設定。 在 [選項] 對話框中,選取 [文本編輯器> [C#Basic] >[程式代碼樣式]>[一般]。

當您選擇選項時,清單中的每個項目都會顯示喜好設定的預覽:

程式代碼樣式選項的螢幕快照。

程式代碼樣式選項的螢幕快照。

在此視窗中設定的選項適用於您的 Visual Studio 個人化帳戶,且不會與特定專案或程式代碼基底相關聯。 此外,它們不會在建置階段強制執行,包括在持續整合 (CI) 組建中。 如果您想要將程式代碼樣式喜好設定與專案產生關聯,並在建置期間強制執行樣式,請在與專案相關聯的 EditorConfig檔案 中指定喜好設定。

偏好和嚴重性

針對 一般命名 選項頁面上的每個程式代碼樣式設定,您可以使用每一行的下拉式清單來設定 喜好設定嚴重性 值。 嚴重性可以設定為 僅重構建議警告,或 錯誤

  • 一般」和「命名」選項頁面中的程式碼樣式喜好設定會決定與程式碼樣式相關的快速動作快速動作 燈泡 、錯誤燈泡 或螺絲起子 圖示會在使用非慣用樣式時出現,而且您可以在 [快速動作] 清單中選擇一個選項,以自動將程式碼重新編寫為慣用樣式。
  • 如果您希望違規項僅顯示為快速動作,而且也被排除在程式碼清理之外,請將嚴重性設定為僅重構
  • 如果您想要違規出現在 [錯誤清單] 視窗以及 [快速動作],並包含在程式代碼清除中,請將 [嚴重性 ] 設定為 [建議]、 [警告] 或 [錯誤]。 當您將 [錯誤清單] 視窗中的輸出設定為 [ 建置 + IntelliSense] 時,違規會顯示為建議(訊息)、警告或錯誤。 它們會被排除在僅限於建置的輸出之外。

EditorConfig 檔案中的設定優先於這些頁面中設定的程式代碼樣式。

在建置過程中強制執行程式碼樣式

從 Visual Studio 2019 16.8 版開始,其中包含 .NET 5.0 RC2 SDK,您可以 在所有 .NET 專案建置 上強制執行 .NET 編碼慣例。 在建置階段,.NET 程式代碼樣式違規會顯示為警告或具有 “IDE” 前置詞的錯誤。 這可讓您嚴格強制執行程式碼基底中的一致程式代碼樣式。

套用程式碼樣式

當您在 [選項] 頁面中變更程式代碼樣式,或將EditorConfig檔案新增至Visual Studio中的專案時,只會根據新的設定來格式化新的程式代碼行。 除非您執行下列其中一個命令,否則不會變更現有程式碼的格式設定:

  • 程式碼整理

    在 Visual Studio 編輯器中選取 程式代碼清理,或按 Ctrl+KCtrl+E。 此命令適用於空格符設定,例如縮排樣式,以及選取的程式代碼樣式設定,例如括號喜好設定。

  • 格式化文件。

    選取 [編輯]>[進階>格式化文件] 或在預設配置文件中按 Ctrl+KCtrl+D。 此命令僅適用於空格符設定,例如縮排樣式。

使用程式碼清理套用程式碼樣式

若要從 EditorConfig 檔案或程式代碼樣式選項頁面套用程式代碼樣式,請使用編輯器底部的 [程式代碼清除] 按鈕(鍵盤:Ctrl+、Ctrl+E)。 如果專案的EditorConfig檔案存在,這些是優先的設定。

提示

設定為 僅限重構 的 .NET 規則不會參與代碼清理,但可以通過 快速動作和重構 功能表單獨套用。

若要套用程式代碼樣式:

  1. 首先,在 [設定程式代碼清除] 對話框中,設定您要套用的程式代碼樣式(在兩個配置檔之一中)。 若要開啟此對話框,請按下程式代碼清除掃把圖示旁的展開器箭號,然後選擇 [設定程式代碼清除] 。 或者,使用 [ 分析>程序代碼清除 ] 功能表。

    配置程式碼清理的螢幕快照。

    如需 .NET 程式代碼清除修正程式與 .NET 程式代碼樣式規則的對應,請參閱 .NET 程式代碼清除設定

    C/C++選項包括在修正工具名稱中的C++。

  2. 設定程式代碼清除之後,請使用下列其中一種方法來執行程式代碼清除:

    • 單擊掃把圖示,或按 ctrl +Ctrl+E

      執行程式代碼清除的螢幕快照。

    • 若要跨整個專案或方案執行程式碼清除,請在 [ 方案總管] 中以滑鼠右鍵按兩下專案或方案名稱,選取 [ 分析和程式代碼清除],然後選取 [ 執行程式代碼清除]。

      整個專案或解決方案執行程式碼清理的螢幕快照。

  3. (選擇性)如果您想要在每次儲存檔案時套用程式碼樣式設定,請移至 [選項>文本編輯器>程式碼清理],然後選取 [儲存時執行程式碼清理設定檔]。

針對 C# 程式代碼檔案,Visual Studio 在編輯器底部有 程式代碼清除 按鈕(鍵盤:Ctrl+KCtrl+E)從 EditorConfig 檔案或 程式代碼樣式 選項頁面套用程式代碼樣式。 如果專案的EditorConfig檔案存在,這些是優先的設定。

提示

設定 嚴重性的規則不會參與程式代碼清除,但可以透過 [快速動作和重構] 功能表個別套用。

若要套用程式代碼樣式:

  1. 首先,在 [設定程式代碼清除] 對話框中,設定您要套用的程式代碼樣式(在兩個配置檔之一中)。 若要開啟此對話框,請按下程式代碼清除掃把圖示旁的展開器箭號,然後選擇 [設定程式代碼清除]

    配置程式碼清理的螢幕快照。

  2. 設定程式代碼清除之後,請使用下列其中一種方法來執行程式代碼清除:

    • 按一下掃把圖示,或按 Ctrl+KCtrl+E 來執行程式碼清理。

      執行程式代碼清除的螢幕快照。

    • 若要跨整個專案或方案執行程式代碼清除,請以滑鼠右鍵按兩下 [方案總管] 中的專案或方案名稱,選取 [分析及程式代碼清除]],然後 選取 [執行程式代碼清除]。

      整個專案或解決方案執行程式碼清理的螢幕快照。

    如果您想要每次儲存檔案時套用程式代碼樣式設定,您可能會喜歡 儲存時的程式代碼清理 擴充功能。

.NET 程式代碼清除設定

大部分的程式代碼清除設定都會對應至EditorConfig中支援的一或多個 .NET 程式代碼樣式。 如需顯示設定效果的範例,請使用下表中的連結。

設定 規則識別碼或樣式選項
拿掉不必要的匯入或使用 IDE0005
排序匯入或使用 dotnet_sort_system_directives_first
dotnet_separate_import_directive_groups
套用檔案標頭的喜好設定 file_header_template
拿掉未使用的變數 CS0219
應用物件創建偏好設定 避免繁複物件創造的視覺化基本程式風格
套用 IsNot 偏好設定 視覺化基本風格偏好「不是」運算式
新增「this」或「Me」標記 IDE0003-IDE0009
新增存取修飾詞 dotnet_style_require_accessibility_modifiers (要求可見性修飾符的程式碼風格)
訂單調整選項 IDE0036
將欄位設為唯讀 dotnet_style_readonly_field
拿掉不必要的轉換 IDE0004
套用物件/集合初始化參數) dotnet_style_object_initializer
套用「using」指令放置偏好設定 csharp_using_directive_placement
套用括號偏好設定 IDE0047-IDE0048
套用尚未使用的偏好設定值 IDE0058
套用語言/架構類型喜好設定 IDE0049
移除未使用的抑制 dotnet_remove_unnecessary_suppression_exclusions
套用簡化布爾表示式喜好設定 dotnet_style_prefer_simplified_boolean_expressions
設定字串插補的偏好 dotnet_style_prefer_simplified_interpolation
拿掉未使用的參數 dotnet_code_quality_unused_parameters (使用未使用之參數的程式碼品質)
套用自動屬性喜好設定 dotnet_style_prefer_auto_properties (偏好使用自動屬性)
套用複合指派喜好設定 dotnet_style_prefer_compound_assignment
套用合併運算式喜好設定 dotnet_style_coalesce_expression
套用條件表達式喜好設定
dotnet_style_prefer_conditional_expression_over_assignmentdotnet_style_prefer_conditional_expression_over_return
套用元組名稱喜好設定 dotnet_style_explicit_tuple_names
dotnet_style_prefer_inferred_tuple_names
套用推斷的匿名類型成員名稱喜好設定 dotnet_style_prefer_inferred_anonymous_type_member_names
套用空值檢查偏好設定 dotnet_style_prefer_is_null_check_over_reference_equality_method
套用 Null 傳播喜好設定 dotnet_style_null_propagation
套用 『var』 喜好設定 IDE0007-IDE0008
為單行控件語句新增必要的大括弧 csharp_prefer_braces
套用表達式/區塊主體喜好設定 表達式主體成員
套用內聯『out』變數喜好設定 C# 風格內嵌變數宣告
套用模式比對偏好設定 模式比對喜好設定
套用條件委派呼叫喜好設定 csharp_style_條件委託呼叫
套用靜態本地函式偏好 csharp_偏好靜態區域函式
套用解構設定偏好 C# 解構變數宣告風格
套用 default(T) 喜好設定 csharp_prefer_simple_default_expression
套用 new() 偏好設定 csharp_style_隱式物件創建_當類型明顯時
套用範圍偏好設定 C# 風格偏好範圍運算符(csharp_style_prefer_range_operator)
套用使用地方函式而非匿名函式的偏好 csharp_style_pattern_local_over_anonymous_function
套用參數空值偏好設定 null 檢查喜好設定
使用語句喜好設定套用 C# 偏好簡單的 using 語句
套用 throw 運算式喜好設定 csharp_style_throw_expression(C# 樣式丟擲表達式)