我继承自 ArrayList
并覆盖 Add
方法(见下文)。
奇怪的是 Add()
方法将对象值参数标记为 [NotNull]
并且 documentation说“这个值可以是空引用”。
无论如何,我现在将其标记为 [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.
}
}
最佳答案
尽管使用 [CanBeNull]
覆盖的 [NotNull]
属性受到 ReSharper 的可空性分析的尊重,并且也显示在 Ctrl+Shift+F1 窗口中,但 ReSharper 错误地忽略了它们在参数信息中。
我创建了 RSRP-447900 .
关于c# - 正确覆盖 [NotNull] 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32414231/