程式碼樣式喜好設定

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

注意

本主題適用於 Windows 上的 Visual Studio。 針對 Visual Studio for Mac,請參閱 Visual Studio for Mac 中的編輯器行為

EditorConfig 檔案中的程式碼樣式

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

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

Screenshot of Generate editorconfig file from settings.

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

Screenshot of Generate editorconfig file from settings.

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

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

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

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

Screenshot of code style options.

Screenshot of code style options.

此視窗中所設定的選項適用於您的 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 檔案,則會優先使用這些設定。

Screenshot of Execute code cleanup.

提示

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

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

Screenshot of Configure Code Cleanup.

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

Screenshot of Run Code Cleanup across entire project or solution.

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

Screenshot of Execute code cleanup.

提示

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

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

Screenshot of Configure Code Cleanup.

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

Screenshot of Run Code Cleanup across entire project or solution.

程式碼清除設定

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

設定 規則識別碼或樣式選項
移除不必要的 Import 或 using IDE0005
套用檔案標頭喜好設定 file_header_template
移除未使用的變數 IDE0051
套用物件建立喜好設定 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 (儲存時清除程式碼) 延伸模組。