代码检查:对于已由另一个非可空基类型约束的类型参数,其基类型约束上的可空注解是多余的。
当另一个约束已经要求类型参数为非可空子类型时,此检查会报告类型约束上的可空注解。 在这种情况下,约束上的 ? 是矛盾且无效的。
示例
#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日