配置编译器警告
JetBrains Rider 包含可报告 最显著的编译器警告 的代码检查,以及相应的 快速修复。 为确保 JetBrains Rider 的代码检查结果与编译器输出及其他工具和分析器一致,编译器警告的严重性级别无法像 JetBrains Rider 的专有检查那样, 在编辑器中 或 通过 JetBrains Rider 设置 进行配置。
相反,您可以通过其他方式抑制编译器警告,概述如下:
配置方式 | 兼容性 | 粒度 | 用它来 |
|---|---|---|---|
所有代码分析规则,但并非所有编译器警告 | 文件/类型/全局 | 确保与 Roslyn 分析器兼容;更改规则的严重性级别 | |
所有编译器警告和代码分析规则 | 代码块/文件 | 在本地抑制特定警告 | |
所有编译器警告和代码分析规则 | 项目作用域 | 在构建级别抑制警告或将警告升级为错误 | |
所有编译器警告和代码分析规则 | 类型/成员 | 在局部范围内抑制特定警告 | |
所有编译器警告和代码分析规则 | 程序集范围 | 在项目范围内抑制不可编辑或生成的代码中的警告 |
使用 .editorconfig(代码样式和现代分析器的首选方式)
该 .editorconfig 文件是配置代码样式和诊断的便捷方式。 它允许您以一致的方式,并在整个项目范围内指定某些警告的严重性级别。
对于所有受支持的警告,您可以使用 EditorConfig 键,格式如下:
例如:
此方法适用于自 C# 8.0 起的编译器警告,以及 Roslyn 分析规则,包括由编译器本身发出的规则。 例如:
与可为 null 的引用相关的警告( CS8xxx )。
平台兼容性警告( CS9xxx )。
某些文档或代码样式诊断(例如, CS1591 )。
在代码中使用 #pragma 指令
您可以在代码中直接使用 #pragma 指令来抑制特定警告。 这对于一次性抑制,或将某个警告的作用范围限定在特定代码块内非常有用。
要抑制高亮显示的编译器警告,请按 Alt+Enter 并选择相应的项。

使用 #pragma 进行抑制将如下所示:
此方法适用于所有编译器警告(CSxxxx ),即使是那些无法通过 .editorconfig 配置的警告。
在项目文件( .csproj )中配置警告
项目文件允许您在项目范围内配置警告行为。 示例包括:
抑制特定警告
将所有警告视为错误
将特定警告视为错误或不视为错误
在 .csproj 文件中的配置适用于所有 CS 警告,并且在涉及构建输出行为时将覆盖 .editorconfig 设置。
使用 [SuppressMessage] 特性
[SuppressMessage] 特性用于在特定类型或成员内抑制特定编译器警告和代码分析规则。 当您需要清晰、具备作用域且可被记录的抑制时,它可以作为 #pragma 的替代方案使用。 例如:
使用全局抑制文件( GlobalSuppressions.cs )
您可以使用 全局抑制文件 在整个项目中抑制任何编译器警告或 Roslyn 代码分析规则。 使用特性指定要抑制的警告。 例如: