正确覆盖[NotNull]属性

本文关键字:属性 NotNull 覆盖 | 更新日期: 2023-09-27 18:11:15

继承ArrayList并覆盖Add方法(见下文)。奇怪的是,Add()方法已将对象值参数标记为[NotNull],并且文档中说"此值可以是空引用"。

无论如何,我现在已经标记为[CanBeNull](通过ReSharper注释属性)。但是IntelliSense仍然给我缓存的文档,将参数标记为[NotNull]

为什么没有覆盖文档?

/// <summary>
/// Bla bla
/// </summary>
/// <param name="value">
/// This Attribute is marked as CanBeNull.
/// </param>
/// <returns></returns>
public override int Add([CanBeNull] object value)
{
    if (value != null)
    {
        // Do sth.
    }
}

正确覆盖[NotNull]属性

尽管ReSharper的空性分析尊重用[CanBeNull]覆盖的[NotNull]属性,并且也显示在Ctrl+Shift+F1窗口中,但ReSharper在参数信息中错误地忽略了它们。

我创建了RSRP-447900.