代码检查:对由另一个非空基类型约束的类型参数的基类型约束的冗余可空注解
当另一个约束已经要求类型参数为非空子类型时,此检查会报告类型约束中的可空注解。 在这种情况下,约束上的 ? 存在矛盾,并且没有任何作用。
示例
#nullable enable
using System;
class C
{
void M<T>() where T : notnull, IDisposable?
{
}
}
#nullable enable
using System;
class C
{
void M<T>() where T : notnull, IDisposable
{
}
}
快速修复
快速修复会移除类型约束中的冗余可空注解。 另外一个快速修复可以将其他约束类型标记为可空,以更好地符合预期的泛型约定。
2026年 5月 8日