语言和不必要的规则

代码样式语言规则会影响 .NET 编程语言的各种构造(如修饰符和括号)的使用方式。

此类别还包括标识代码库中不必要且可以重构或移除的部件。 出现不必要的代码表示存在以下一个或多个问题:

  • 可读性:不必要地降低可读性的代码。
  • 可维护性:重构后不再使用并且不必维护的代码。
  • 性能:不必要的计算不会产生副作用,但会导致不必要的性能开销。
  • 功能性:导致所需代码冗余的代码中的功能性问题。 例如,在方法意外忽略输入参数的情况下,IDE0060 会标记未使用的参数。

语言规则分为以下几个类别:

  • .NET 样式规则:适用于 C# 和 Visual Basic 的规则。 这些规则的选项名称以 dotnet_style_ 前缀开头。
  • C# 样式规则:特定于 C# 代码的规则。 这些规则的选项名称以 csharp_style_ 前缀开头。
  • Visual Basic 样式规则:特定于 Visual Basic 代码的规则。 这些规则的选项名称以 visual_basic_style_ 前缀开头。

选项格式

许多语言规则具有一个或多个用于自定义首选样式的关联选项。 例如,使用简单的“using”语句 (IDE0063) 具有关联的选项 csharp_prefer_simple_using_statement,可用于定义是首选 using 声明还是 using 语句。 规则会强制实施你在指定级别选择的选项,例如警告或错误。

可以在配置文件中指定语言规则的选项,格式如下:

option_name = value(Visual Studio 2019 和更高版本)

option_name = value:severity

  • 对于每个语言规则,可指定一个定义是否或何时以此样式为首选项的值。 许多规则都接受 true 值(以此样式为首选项)或 false 值(不以此样式为首选项)。 其他规则接受 when_on_single_linenever 等值。

  • 严重性(在 Visual Studio 2019 及更高版本中为可选)

    此规则的第二部分指定规则的严重性级别。 在 .NET 9 及更高版本中,始终遵循严重性,即在开发 IDE 内部和 命令行生成期间。 在 .NET 8 和早期版本中,此严重性设置仅在开发 IDE(如 Visual Studio)内受尊重,而不是在生成期间。

    如果使用的是 .NET 8 SDK 或早期版本,并且希望在生成时遵守严重性,可以通过以下两种方式之一执行此操作:

    • AnalysisLevel> 或<AnalysisLevelStyle>属性设置为9.0或更高或设置为 preview。<
    • 请改用分析器基于规则 ID 的严重性配置语法来设置严重性。 语法采用形式 dotnet_diagnostic.<rule ID>.severity = <severity>(例如,dotnet_diagnostic.IDE0040.severity = warning)。 有关详细信息,请参阅严重性级别

提示

从 Visual Studio 2019 开始,发生样式冲突后,可以在“快速操作”灯泡菜单中配置代码样式规则。

规则索引

语言和不必要的代码规将进一步分为子类别,例如表达式级首选项、代码块首选项和修饰符首选项。

using 指令首选项

.NET 样式规则(C# 和 Visual Basic):

C# 样式规则:

代码块首选项

C# 样式规则:

Expression-Bodied 成员

C# 样式规则:

表达式级首选项

.NET 样式规则(C# 和 Visual Basic):

C# 样式规则:

Visual Basic 样式规则:

字段首选项

.NET 样式规则(C# 和 Visual Basic):

语言关键字与框架类型首选项

.NET 样式规则(C# 和 Visual Basic):

修饰符首选项

.NET 样式规则(C# 和 Visual Basic):

C# 样式规则:

新行首选项

  • 允许多个空行 (IDE2000)
  • 允许将嵌入的语句放在同一行上 (IDE2001)
  • 允许在连续大括号之间使用空行 (IDE2002)
  • 允许块后紧跟语句 (IDE2003)
  • 允许在构造函数初始化表达式中的冒号后面使用空行 (IDE2004)
  • 允许在条件表达式中的标记后使用空行 (IDE2005)
  • 允许在箭头表达式中的标记后使用空行 (IDE2006)

Null 检查首选项

C# 样式规则:

参数首选项

.NET 样式规则(C# 和 Visual Basic):

括号首选项

.NET 样式规则(C# 和 Visual Basic):

模式匹配首选项

C# 样式规则:

抑制首选项

.NET 样式规则(C# 和 Visual Basic):

This.me.

.NET 样式规则(C# 和 Visual Basic):

var 首选项

C# 样式规则:

另请参阅