代码样式规则概述 - .NET

代码样式规则概述 - .NET

.NET 代码样式分析提供旨在保持代码库中一致 样式 的规则。 这些规则的规则 ID 具有“IDE”前缀。

代码样式规则组织为以下子类别:

语言和不必要的代码规则

与 C# 或 Visual Basic 语言相关的规则。 例如,可以指定定义变量时有关使用 var 的规则,或有关是否首选 expression-bodied 成员的规则。 此类别还包括查找不必要的代码的规则,例如,方法中无法访问的代码或未使用的私有字段、属性或方法。

格式设置规则

与代码的布局和结构有关的规则,其作用是使代码更易于阅读。 例如,可以指定一个格式设置选项,用于定义控件块中的空格是否首选。

命名规则

与代码元素命名相关的规则。 例如,可以指定 async 方法名必须具有“Async”后缀。

其他规则

不属于其他类别的规则。

索引

下表按 ID 和 选项列出所有代码样式规则(如果有)。

规则 ID

标题

选项

IDE0001

简化名称

IDE0002

简化成员访问

IDE0003

删除 this 或 Me 限定

dotnet_style_qualification_for_field

dotnet_style_qualification_for_property

dotnet_style_qualification_for_method

dotnet_style_qualification_for_event

IDE0004

删除不必要的 cast

IDE0005

删除不必要的 import

IDE0007

用 var 替代显式类型

csharp_风格_var_内置类型

csharp_style_var_when_type_is_apparent

csharp_style_var_elsewhere

IDE0008

用显式类型代替 var

csharp_风格_var_内置类型

csharp_style_var_when_type_is_apparent

csharp_style_var_elsewhere

IDE0009

添加 this 或 Me 限定

dotnet_style_qualification_for_field

dotnet_style_qualification_for_property

dotnet_style_qualification_for_method

dotnet_style_qualification_for_event

IDE0010

将缺失的事例添加到 switch 语句

IDE0011

添加大括号

csharp_prefer_braces

IDE0016

使用 throw 表达式

csharp_style_throw_expression

IDE0017

使用对象初始值设定项

dotnet风格的对象初始化器

IDE0018

内联变量声明

csharp_style_嵌入式变量声明

IDE0019

使用模式匹配来避免 as 后跟 null 检查

csharp_style_pattern_matching_over_as_with_null_check

IDE0020

使用模式匹配来避免后跟强制转换的 is 检查(带变量)

csharp_style_pattern_matching_over_is_with_cast_check(C# 风格模式匹配优于 is 加类型转换检查)

IDE0021

使用构造函数的表达式主体

csharp_style_expression_bodied_constructors

IDE0022

使用方法的表达式主体

csharp_style_expression_bodied_methods

IDE0023

使用转换运算符的表达式主体

C#_样式_表达式主体运算符

IDE0024

使用运算符的表达式主体

C#_样式_表达式主体运算符

IDE0025

使用属性的表达式主体

C# 风格表达式体属性

IDE0026

使用索引器的表达式主体

csharp_style_expression_bodied_indexers

IDE0027

为访问器使用表达式主体

csharp_style_expression_bodied_accessors

IDE0028

使用集合初始值设定项

dotnet_style_collection_initializer

dotnet_style_prefer_collection_expression

IDE0029

可以简化 Null 检查

dotnet_style_coalesce_expression

IDE0030

可以简化 Null 检查

dotnet_style_coalesce_expression

IDE0031

使用 Null 传播

dotnet_style_null_propagation

IDE0032

使用自动属性

dotnet_style_prefer_auto_properties (dotnet 样式倾向自动属性)

IDE0033

使用显式提供的元组名称

dotnet_style_explicit_tuple_names

IDE0034

简化 default 表达式

csharp_优先使用简单默认表达式

IDE0035

删除无法访问的代码

IDE0036

对修饰符进行排序

csharp_preferred_modifier_order

Visual Basic 首选修饰符顺序

IDE0037

使用推断的成员名称

dotnet_style_prefer_inferred_tuple_names

dotnet_style_prefer_inferred_anonymous_type_member_names

IDE0038

使用模式匹配来避免后跟强制转换的 is 检查(不带变量)

csharp_style_pattern_matching_over_is_with_cast_check(C# 风格模式匹配优于 is 加类型转换检查)

IDE0039

使用本地函数而不是 Lambda

在 csharp_style_prefer_local_over_anonymous_function 设置中,在局部函数上优先于匿名函数的编程风格。

IDE0040

添加可访问性修饰符

dotnet_style_require_accessibility_modifiers

IDE0041

使用 is null 检查

dotnet_style_prefer_is_null_check_over_reference_equality_method

IDE0042

析构变量声明

csharp_style_deconstructed_variable_declaration

IDE0044

添加 readonly 修饰符

dotnet_style_readonly_field

IDE0045

使用 assignment 的条件表达式

dotnet_风格_偏好条件表达优于赋值

IDE0046

使用 return 的条件表达式

dotnet_style_prefer_conditional_expression_over_return

IDE0047

删除不必要的括号

dotnet_style_parentheses_in_arithmetic_binary_operators

dotnet_关系二元运算符中的括号风格

dotnet_style_parentheses_in_other_binary_operators(在其他二元运算符中使用括号的风格)

dotnet_style_parentheses_in_other_operators

IDE0048

为清楚起见,请添加括号

dotnet_style_parentheses_in_arithmetic_binary_operators

dotnet_关系二元运算符中的括号风格

dotnet_style_parentheses_in_other_binary_operators(在其他二元运算符中使用括号的风格)

dotnet_style_parentheses_in_other_operators

IDE0049

使用语言关键字,而非类型引用的框架类型名称

dotnet_style_预定义类型_用于_局部变量_参数_成员

dotnet_style_predefined_type_for_member_access

IDE0050

将匿名类型转换为元组

IDE0051

删除未使用的私有成员

IDE0052

删除未读取的私有成员

IDE0053

使用 Lambda 的表达式主体

csharp_样式_表达式体_匿名函数

IDE0054

使用复合分配

dotnet_style_prefer_compound_assignment

IDE0055

修正格式

(太多无法在此处列出。请参阅 .NET 格式设置选项 和 C# 格式设置选项。

IDE0056

使用索引运算符

csharp_风格_更倾向_索引_运算符

IDE0057

使用范围运算符

C# 样式优选范围运算符

IDE0058

删除未使用的表达式值

csharp_style_unused_value_expression_statement_preference

视觉基础样式未使用值表达式语句偏好

IDE0059

删除不必要的赋值

csharp_style_unused_value_assignment_preference

Visual Basic 样式未使用值分配首选项

IDE0060

删除未使用的参数

dotnet代码质量_未使用的参数

IDE0061

使用局部函数的表达式主体

csharp_style_expression_bodied_local_functions

IDE0062

生成本地函数 static

csharp_prefer_static_local_function

IDE0063

使用简单的 using 语句

csharp_偏向简单使用语句

IDE0064

将结构字段设置为可写

IDE0065

using 指令放置

csharp_using_directive_placement

IDE0066

使用 switch 表达式

csharp_style_prefer_switch_expression

IDE0070

使用 System.HashCode.Combine

IDE0071

简化内插

dotnet_style_prefer_simplified_interpolation

IDE0072

将缺失的事例添加到 switch 表达式

IDE0073

使用文件头

文件头模板

IDE0074

使用联合复合赋值

dotnet_style_prefer_compound_assignment

IDE0075

简化条件表达式

dotnet_style_prefer_simplified_boolean_expressions

IDE0076

删除无效的全局 SuppressMessageAttribute

IDE0077

避免在全局 SuppressMessageAttribute 中使用旧格式目标

IDE0078

使用模式匹配

csharp_style_prefer_pattern_matching

IDE0079

删除不必要的抑制

dotnet_remove_unnecessary_suppression_exclusions

IDE0080

删除不必要的抑制运算符

IDE0081

删除了 ByVal

IDE0082

将 typeof 转换为 nameof

IDE0083

使用模式匹配(not 运算符)

csharp_style_prefer_not_pattern

IDE0084

使用模式匹配(IsNot 运算符)

Visual Basic 样式偏好:IsNot 表达式

IDE0090

简化 new 表达式

csharp_类型明显时的隐式对象创建风格

IDE0100

删除不必要的相等运算符

IDE0110

删除不必要的弃元

IDE0120

简化 LINQ 表达式

IDE0121

简化 LINQ 类型检查和强制转换

IDE0130

命名空间与文件夹结构不匹配

dotnet_style_namespace_match_folder

IDE0140

简化对象的创建

Visual Basic 风格偏好简化对象创建

IDE0150

首选 null 检查,而不是类型检查

csharp_风格_更喜欢_null检查而不是类型检查

IDE0160

使用以程序块为作用域的命名空间

csharp_style_namespace_declarations

IDE0161

使用以文件为作用域的命名空间

csharp_style_namespace_declarations

IDE0170

简化属性模式

csharp_style_prefer_extended_property_pattern

IDE0180

使用元组来交换值

csharp 风格首选元组交换

IDE0200

删除不必要的 Lambda 表达式

csharp_style_prefer_method_group_conversion

IDE0210

转换为顶级语句

csharp_style_prefer_top_level_statements

IDE0211

转换为“Program.Main”样式程序

csharp_style_prefer_top_level_statements

IDE0220

在 foreach 循环中添加显式强制转换

dotnet_style_prefer_foreach_explicit_cast_in_source

IDE0230

使用 UTF-8 字符串字面量

csharp_style_prefer_utf8_string_literals

IDE0240

Nullable 指令是冗余的

IDE0241

Nullable 指令是不必要的

IDE0250

可以将结构设为“只读”

csharp_style_prefer_readonly_struct

IDE0251

成员可设为“只读”

csharp_style_prefer_readonly_struct_member

IDE0260

使用模式匹配

csharp_style_pattern_matching_over_as_with_null_check

IDE0270

可以简化 Null 检查

dotnet_style_coalesce_expression

IDE0280

使用 nameof

IDE0290

使用主构造函数

csharp_style_prefer_primary_constructors

IDE0300

使用 array 的集合表达式

dotnet_style_prefer_collection_expression

IDE0301

使用 empty 的集合表达式

dotnet_style_prefer_collection_expression

IDE0302

使用 stackalloc 的集合表达式

dotnet_style_prefer_collection_expression

IDE0303

使用集合表达式 Create()

dotnet_style_prefer_collection_expression

IDE0304

使用生成器的集合表达式

dotnet_style_prefer_collection_expression

IDE0305

使用 fluent 的集合表达式

dotnet_style_prefer_collection_expression

IDE0306

将集合表达式用于新的对象

dotnet_style_prefer_collection_expression

IDE0320

生成匿名函数 static

csharp_prefer_static_anonymous_function

IDE0330

首选“System.Threading.Lock”

csharp_prefer_system_threading_lock

IDE0340

使用未绑定泛型类型

csharp_style_prefer_unbound_generic_type_in_nameof

IDE0350

使用隐式类型 Lambda 表达式

csharp_风格_偏好_隐式类型化_lambda_表达式

IDE1005

使用条件委托调用

csharp 风格的条件委托调用

IDE1006

命名样式

IDE2000

避免多个空白行

dotnet_style_allow_multiple_blank_lines_experimental†

IDE2001

嵌入语句必须单独占一行。

csharp_style_allow_embedded_statements_on_same_line_experimental†

IDE2002

连续大括号之间不得有空行

csharp_style_allow_blank_lines_between_consecutive_braces_experimental†

IDE2003

块和后续语句之间所需的空白行

dotnet_style_allow_statement_immediately_after_block_experimental† 允许在代码块后立即使用语句的实验性设置

IDE2004

不允许在构造函数初始化冒号后添加空行

csharp_style_allow_blank_line_after_colon_in_constructor_initializer_experimental†

IDE2005

条件表达式标记后不允许使用空行

csharp_style_allow_blank_line_after_token_in_conditional_expression_experimental†

IDE2006

箭头表达式子句标记后不允许使用空行

csharp_style_allow_blank_line_after_token_in_arrow_expression_clause_experimental†

IDE3000

使用 Copilot 实现

†这些规则是实验性的,可能会更改或删除。

注意

某些规则仅显示在 Visual Studio IDE 中,这些规则涉及 JSON 和正则表达式模式字符串。 有关详细信息,请参阅 JSON001、 JSON002和 RE0001。

图例

下表显示了参考文档中每个规则提供的信息类型。

项

说明

规则 ID

规则的唯一标识符。 用于在代码文件中配置规则严重性并禁止显示警告。

标题

规则的标题。

类别

规则的类别。

子类别

规则的子类别,例如语言规则、格式规则或命名规则。

适用的语言

适用的 .NET(C# 或 Visual Basic),以及最低语言版本(如果适用)。

引入的版本

首次引入规则时 .NET SDK 或 Visual Studio 的版本。

选项

规则的任何可用选项。

另请参阅

在生成时强制执行代码样式

Visual Studio 中的快速操作

在 Visual Studio 中创建可移植的自定义编辑器选项