JetBrains Rider 2025.2 Help

代码检查:根据可空引用类型的注解,表达式始终为“true”或“false”

如果启用了 可空引用类型 (NRT) ,此检查在 C# 8.0 及更高版本中有效,并根据 NRT 合约报告始终为 true 或始终为 false 的表达式。

NRT 提高了可空性分析的整体精度,但在某些情况下,NRT 合约可能会被违反,例如,当值来自没有 #可为 null 上下文的代码时。 在这种情况下,您可能会收到可空性检查的误报警告。 您可以选择忽略可空 API 合约,仅在代码中对值的先前操作保证其可以或不可以为 null 时报告问题。

您可以直接从 Alt+Enter 菜单更改此行为:

JetBrains Rider:可空引用类型

…或者在 JetBrains Rider 设置 的 编辑器 | 检查设置 页面上使用 可空引用类型的警告模式 选项。

当 JetBrains Rider 忽略可空 API 合约时,可空性分析依赖程序控制流来报告冗余的空检查。 它将使用另一个检查来完成此任务。 例如:

var myString = ApiMethod(); if (myString is null) throw new ApplicationException("the string is null"); // warning 'Expression is always true' // 'myString' cannot be null because it's already checked for null in our code if (myString != null) Console.WriteLine(myString);

有关 NRT 及其在 JetBrains Rider 中的支持的更多信息,请观看此网络研讨会录制:

最后修改日期: 2025年 9月 26日