代码检查:根据可空引用类型的注解,'??' 条件永远不会为 null
如果可空注解或 API 合约已经声明左侧永远不会为 null ,则会报告 ?? 或 ??= 表达式。 在这种情况下,备用值不可达,通常说明存在冗余代码或不匹配的可空性注解。
示例
#nullable enable
using System.Diagnostics.CodeAnalysis;
class C
{
[DisallowNull]
private string? _name = "";
string GetName()
{
return _name ?? "Unknown";
}
}
#nullable enable
using System.Diagnostics.CodeAnalysis;
class C
{
[DisallowNull]
private string? _name = "";
string GetName()
{
return _name;
}
}
快速修复
根据情况,快速修复也可以将成员或参数设为可空类型,而不是移除不可达的备用值。
2026年 5月 8日