代码样式首选项

可以使用 EditorConfig 文件为每个项目定义代码样式设置,也可以在文本编辑器选项页面上为在 Visual Studio 中编辑的所有代码定义代码样式设置。 对于 C# 代码,还可以将 Visual Studio 配置为使用 代码清理(Visual Studio 2019、Visual Studio 2022)和 格式文档(Visual Studio 2017)命令应用这些代码样式首选项。

EditorConfig 文件中的代码样式

可以通过向项目添加 EditorConfig 文件来指定 .NET 代码样式设置。 EditorConfig 文件与代码库而不是 Visual Studio 个性化帐户相关联。 EditorConfig 文件中的设置优先于 选项 对话框中指定的代码样式。 如果要对存储库或项目的所有参与者强制实施编码样式,请使用 EditorConfig 文件。

可以手动填充 EditorConfig 文件,也可以根据 Visual Studio 选项 对话框中选择的代码样式设置自动生成该文件。 此选项页可在 工具>选项>文本编辑器> [C#基本] >代码样式>常规下找到。 单击“通过设置生成 .editorconfig 文件”,基于此“选项”页上的设置来自动生成编码样式 .editorconfig 文件

“从设置生成编辑器配置文件”的屏幕截图。

可以手动填充 EditorConfig 文件,也可以根据 Visual Studio 选项 对话框中选择的代码样式设置自动生成该文件。 此选项页面位于“工具”>“选项”>“文本编辑器”>“[C# 或 Visual Basic]”>“代码样式”>“常规”中。 单击“通过设置生成 .editorconfig 文件”,基于此“选项”页上的设置来自动生成编码样式 .editorconfig 文件

“从设置生成编辑器配置文件”的屏幕截图。

“选项”对话框中的代码样式

可以通过从“工具”菜单中打开“选项”对话框,为所有 C# 和 Visual Basic 项目设置代码样式首选项。 在 选项 对话框中,选择 文本编辑器> [C#Visual Basic] >代码样式>常规

可以通过从“工具”菜单中打开“选项”对话框,为所有 C# 和 Visual Basic 项目设置代码样式首选项。 在 选项 对话框中,选择 文本编辑器> [C#基本] >代码样式>常规

当选择列表中的每个项目时,将显示其首选项的预览:

代码样式选项的屏幕截图。

代码样式选项的屏幕截图。

在此窗口中设置的选项适用于 Visual Studio 个性化帐户,并且不与特定项目或代码库相关联。 此外,它们不会在构建时强制执行,包括在持续集成(CI)构建中。 如果要将代码样式首选项与项目相关联,并在生成过程中强制实施样式,请在与项目关联的 .editorconfig 文件中指定首选项

首选项和严重级别

对于此页上的每个代码样式设置,您可以使用每行的下拉列表来设置 首选项严重性 的值。 严重性可设置为“仅重构”、“建议”、“警告”或“错误”。 如果想要为某个代码样式启用快速操作,请确保“严重性”设置为“仅重构”以外的其他项。 使用非首选样式时,快速操作 灯泡 、错误灯泡 或螺丝刀 图标显示,可以在 快速操作 列表中选择一个选项,以自动将代码重写为首选样式。

在构建时强制执行代码样式

从 Visual Studio 2019 版本 16.8(包括 .NET 5.0 RC2 SDK)开始,可以针对所有 .NET 项目在生成时强制实施 .NET 编码约定。 在生成时,.NET 代码样式冲突将显示为带有“IDE”前缀的警告或错误。 这样,便可以严格强制实施代码库中的一致代码样式。

应用代码样式

对于 C# 代码文件,Visual Studio 在编辑器底部有一个 代码清理 按钮(键盘:Ctrl+KCtrl+E)从 EditorConfig 文件或 代码样式 选项页应用代码样式。 如果项目的 .editorconfig 文件存在,则这些设置优先。

提示

严重性配置为“无”的规则不参与代码清理,但可通过“快速操作和重构”菜单单独应用。

应用代码样式:

  1. 首先,在“配置代码清理”对话框中配置要应用的代码样式(在两个配置文件中的某个文件中)。 若要打开此对话框,请单击代码清理扫把图标旁边的展开器箭头,然后选择 配置代码清理

    配置代码清理的屏幕截图。

  2. 配置代码清理后,使用以下方法之一运行代码清理:

    • 单击扫把图标或按 Ctrl +KCtrl+E 运行代码清理。

      执行代码清理的屏幕截图。

    • 若要在整个项目或解决方案中运行代码清理,请在 解决方案资源管理器中右键单击项目或解决方案名称,选择“分析和代码清理”,然后选择 运行代码清理

      在整个项目或解决方中运行代码清理功能的屏幕截图。

    如果希望每次保存文件时都应用代码样式设置,则可能需要使用保存时清理代码扩展。

对于 C# 代码文件,Visual Studio 在编辑器底部有一个 代码清理 按钮(键盘:Ctrl+KCtrl+E)从 EditorConfig 文件或 代码样式 选项页应用代码样式。 如果项目的 .editorconfig 文件存在,则这些设置优先。

提示

严重性配置为“无”的规则不参与代码清理,但可通过“快速操作和重构”菜单单独应用。

应用代码样式:

  1. 首先,在“配置代码清理”对话框中配置要应用的代码样式(在两个配置文件中的某个文件中)。 若要打开此对话框,请单击代码清理扫把图标旁边的展开器箭头,然后选择 配置代码清理

    配置代码清理的屏幕截图。

  2. 配置代码清理后,使用以下方法之一运行代码清理:

    • 单击扫把图标或按 Ctrl+KCtrl+E

      执行代码清理的屏幕截图。

    • 若要在整个项目或解决方案中运行代码清理,请在 解决方案资源管理器中右键单击项目或解决方案名称,选择“分析和代码清理”,然后选择 运行代码清理

      在整个项目或解决方中运行代码清理功能的屏幕截图。

    如果希望每次保存文件时应用代码样式设置,请转到 选项>文本编辑器>代码清理 并选择保存 时运行代码清理配置文件

代码清理设置

大多数代码清理设置映射到 .editorconfig支持的一个或多个 .NET 代码样式。 有关显示设置效果的示例,请使用下表中的链接。

设置 规则 ID 或样式选项
删除不必要的 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
删除不必要的强制转换 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
应用表达式/代码块的首选设置 Expression-Bodied 成员
应用内联“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

::: moniker-end