代码样式首选项

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

注意

本主题适用于 Visual Studio Windows 版。 对于 Visual Studio for Mac,请参阅 Visual Studio for Mac 中的编辑器行为

EditorConfig 文件中的代码样式

通过将 EditorConfig 文件添加到项目,可以指定 .NET 的代码样式设置。 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+K,Ctrl+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+K,Ctrl+E”,来运行代码清理。 此外,还可以在整个项目或解决方中运行代码清理功能。 在“解决方案资源管理器”中右键单击项目或解决方案名称,选择“分析和代码清理”,然后选择“运行代码清理”。

Screenshot of Run Code Cleanup across entire project or solution.

代码清理设置

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

设置 规则 ID 或样式选项
删除不必要的 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
删除不必要的强制转换 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

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

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