代码样式首选项

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

EditorConfig 文件中的代码样式

通过将 EditorConfig 文件添加到项目,可以指定 .NET 的代码样式设置。 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 文件,则优先采用这些设置

提示

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

应用代码样式:

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

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

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

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

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

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

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

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

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

提示

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

应用代码样式:

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

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

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

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

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

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

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

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

代码清理设置

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

设置 规则 ID 或样式选项
删除不必要的 import 或 using IDE0005
对导入或使用进行排序 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