程式碼樣式喜好設定

您可以使用 EditorConfig 檔案針對每個專案定義程式碼樣式設定,或是針對所有您在 Visual Studio 中編輯的程式碼,使用文字編輯器的 選項 頁面進行設定。 針對 C# 程式碼,您也可以使用程式碼清除 (Visual Studio 2019、Visual Studio 2022) 和格式化文件 (Visual Studio 2017) 命令設定 Visual Studio,以套用這些程式碼樣式喜好設定。

EditorConfig 檔案中的程式碼樣式

.NET 的程式碼樣式設定可透過將 EditorConfig 檔案新增到專案來指定。 EditorConfig 檔案都會與程式碼基底 (而非 Visual Studio 個人化帳戶) 建立關聯。 EditorConfig 檔案中設定的優先權高於 [選項] 對話方塊中所指定程式碼樣式。 當您想要針對存放庫或專案的所有參與者強制執行編碼樣式時,請使用 EditorConfig 檔案。

您可以手動填入您的 EditorConfig 檔案,或是根據您在 Visual Studio 中 [選項] 對話方塊中所選擇的程式碼樣式設定來自動產生該檔案。 此選項頁面可在 [工具]>[選項]>[文字編輯器]> [C#Basic] >[程式碼樣式]>[一般] 中取得。 按一下 [從設定產生 .editorconfig 檔案] 來根據此 [選項] 頁面上的設定自動產生程式碼樣式 .editorconfig 檔案。

從設定產生 .editorconfig 檔案的螢幕擷取畫面。

您可以手動填入您的 EditorConfig 檔案,或是根據您在 Visual Studio 中 [選項] 對話方塊中所選擇的程式碼樣式設定來自動產生該檔案。 此選項頁面可在 [工具]>[選項]>[文字編輯器]> [C#Visual Basic] >[程式碼樣式]>[一般] 中取得。 按一下 [從設定產生 .editorconfig 檔案] 來根據此 [選項] 頁面上的設定自動產生程式碼樣式 .editorconfig 檔案。

從設定產生 .editorconfig 檔案的螢幕擷取畫面。

[選項] 對話方塊中的程式碼樣式

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

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

清單中的每個項目會在選取時顯示個別的喜好設定預覽:

程式碼樣式選項的螢幕擷取畫面 。

程式碼樣式選項的螢幕擷取畫面 。

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

喜好設定和嚴重性

對於此頁面上的各個程式碼樣式,您可以使用每一行的下拉式清單來設定 [喜好設定] 和 [嚴重性] 的值。 [嚴重性] 可設定為 [僅重構]、[建議]、[警告] 或 [錯誤]。 如果您想要針對程式碼樣式啟用快速動作,請務必將 [嚴重性] 設定設為 [僅重構] 以外的值。 使用非慣用樣式時,會出現快速動作燈泡 、錯誤燈泡 或螺絲起子 圖示,而您可以選擇 [快速動作] 清單上的選項,自動將程式碼重寫成慣用的樣式。

在組建上強制執行程式碼樣式

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

套用程式碼樣式

對於 C# 程式碼檔案,Visual Studio 在編輯器底部有一個 [程式碼清除] 按鈕 (鍵盤:Ctrl+K, Ctrl+E),可讓您從 EditorConfig 檔案或 [程式碼樣式] 選項頁面套用程式碼樣式。 若專案中存在 .editorconfig 檔案,則會優先使用這些設定。

執行程式碼清除的螢幕擷取畫面。

提示

若規則的嚴重性為 [無],就不會參與程式碼清除,但可透過 [快速動作與重構] 功能表個別套用。

首先,在 [設定程式碼清除] 對話方塊中設定您想要套用的程式碼樣式 (從兩個設定檔中擇一進行設定)。 若要開啟此對話方塊,請按一下程式碼清除掃帚圖示旁邊的擴張箭頭,然後選擇 [設定程式碼清除]

設定程式碼清除的螢幕擷取畫面。

在您設定程式碼清除之後,您可以按一下掃帚圖示,或按 Ctrl+KCtrl+E 來執行程式碼清除。 您也可以跨整個專案或解決方案執行程式碼清除。 以滑鼠右鍵按一下 [方案總管] 中的專案或解決方案名稱,選取 [分析與程式碼清除],然後選取 [執行程式碼清除]

跨整個專案或方案的執行程式碼清除的螢幕擷取畫面。

對於 C# 程式碼檔案,Visual Studio 在編輯器底部有一個 [程式碼清除] 按鈕 (鍵盤:Ctrl+K, Ctrl+E),可讓您從 EditorConfig 檔案或 [程式碼樣式] 選項頁面套用程式碼樣式。 若專案中存在 .editorconfig 檔案,則會優先使用這些設定。

執行程式碼清除的螢幕擷取畫面。

提示

若規則的嚴重性為 [無],就不會參與程式碼清除,但可透過 [快速動作與重構] 功能表個別套用。

首先,在 [設定程式碼清除] 對話方塊中設定您想要套用的程式碼樣式 (從兩個設定檔中擇一進行設定)。 若要開啟此對話方塊,請按一下程式碼清除掃帚圖示旁邊的擴張箭頭,然後選擇 [設定程式碼清除]

設定程式碼清除的螢幕擷取畫面。

在您設定程式碼清除之後,您可以按一下掃帚圖示,或按 Ctrl+KCtrl+E 來執行程式碼清除。 您也可以跨整個專案或解決方案執行程式碼清除。 以滑鼠右鍵按一下 [方案總管] 中的專案或解決方案名稱,選取 [分析與程式碼清除],然後選取 [執行程式碼清除]

跨整個專案或方案的執行程式碼清除的螢幕擷取畫面。

程式碼清除設定

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

設定 規則識別碼或樣式選項
移除不必要的 Import 或 using IDE0005
排序 import 或 using dotnet_sort_system_directives_first
dotnet_separate_import_directive_groups
套用檔案標頭喜好設定 file_header_template
移除未使用的變數 CS0219
套用物件建立喜好設定 visual_basic_style_prefer_simplified_object_creation
套用 IsNot 喜好設定 visual_basic_style_prefer_isnot_expression
新增 'this' 或 'Me' 限定性條件 IDE0003-IDE0009
新增協助工具修飾詞 dotnet_style_require_accessibility_modifiers
為修飾元排序 IDE0036
將欄位設為唯讀 dotnet_style_readonly_field
移除不必要的 cast 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_assignment
dotnet_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
套用 Null 檢查喜好設定 dotnet_style_prefer_is_null_check_over_reference_equality_method
套用 Null 傳播喜好設定 dotnet_style_null_propagation
套用 'var' 喜好設定 IDE0007-IDE0008
新增單行控制陳述式所需的大括弧 csharp_prefer_braces
套用運算式/區塊主體喜好設定 運算式主體成員
套用內嵌 'out' 變數喜好設定 csharp_style_inlined_variable_declaration
套用模式比對喜好設定 模式比對喜好設定
套用條件式委派呼叫喜好設定 csharp_style_conditional_delegate_call
套用靜態區域函式喜好設定 csharp_prefer_static_local_function
套用解構喜好設定 csharp_style_deconstructed_variable_declaration
套用 default(T) 喜好設定 csharp_prefer_simple_default_expression
套用 new() 喜好設定 csharp_style_implicit_object_creation_when_type_is_apparent
套用範圍喜好設定 csharp_style_prefer_range_operator
套用區域而非匿名函式喜好設定 csharp_style_pattern_local_over_anonymous_function
套用參數 Null 喜好設定 Null 檢查喜好設定
套用 Using 陳述式喜好設定 csharp_prefer_simple_using_statement
套用 Throw 運算式喜好設定 csharp_style_throw_expression

如果您想要在每次儲存檔案時套用程式碼樣式設定,請移至 [選項]>[文字編輯器]>[程式碼清除],然後選取 [儲存時執行程式碼清除設定檔]

若您想要在每次儲存檔案時套用程式碼樣式設定,建議您參考 Code Cleanup on Save (儲存時清除程式碼) 延伸模組。