gpt4 book ai didi

c# - ReSharper 警告 : Base Class [NotNull] While Derived Class Property [CanBeNull] Conflict

转载 作者:太空宇宙 更新时间:2023-11-03 22:56:36 24 4
gpt4 key购买 nike

考虑以下 C#.Net 代码:

using System.Xml;

internal class MyXmlReaderClass : XmlReader
{
private readonly XmlReader _innerReader;

public MyXmlReaderClass(...other_parameters... , XmlReader innerReader)
{
_innerReader = innerReader;
}
//... lots of code has been left out, here ...

public override string LocalName
{
get { return _innerReader.LocalName; }
}
//... lots more code has been left out, here ...
}

在属性 LocalName 中,ReSharper 在类型 string 下放置了一个下划线,并带有警告,“string”是(明确或隐含的)[ NotNull]

我以为我理解了关于可空对象的概念。除了这种情况外,我已经能够从我的代码中重构大部分这些问题。

如果我正确理解我的世界,基类 (XmlReader) 就是 ReSharper 标识为 [NotNull] 的内容。这意味着 ReSharper 认为我对该属性的覆盖可能会返回 null,而基础永远不会返回 null。

我很难思考如何使用某种覆盖来覆盖基类属性 LocalName ,这样基类和派生类。

我的问题由多个部分组成,“ReSharper 究竟在识别什么,我该如何解决不一致问题?”

是的,我通过 StackOverflow 进行了高低搜索,并使用了 Google,但找不到这个具体示例。

谢谢。

最佳答案

这不是 ReSharper 警告,而是 "type highlighting" of the Implicit Nullability extension .

What exactly is ReSharper identifying?

突出显示通知您,您的成员的返回类型隐式为 [NotNull],因为基本成员为 [NotNull]。

基础成员 XmlReader.LocalName 是 [NotNull] 因为 External Annotation由 ReSharper 提供。

How do I fix the inconsistency?

您不必修复它,因为它不是警告/建议。这只是一个突出显示。

如果您不喜欢这种突出显示,您可以在隐式可空性页面的 R# 选项中禁用它。

关于c# - ReSharper 警告 : Base Class [NotNull] While Derived Class Property [CanBeNull] Conflict,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45091425/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com