微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

试图了解 ReSharper 发出的特定“表达式总是错误的”警告

如何解决试图了解 ReSharper 发出的特定“表达式总是错误的”警告

我偶然发现了 ReSharper(在 Rider 中)的一个特定的“总是错误的”警告,我最初认为这是不正确的,但是从我通常从其他人那里收集到的信息来看,如果发生这种情况,ReSharper 比程序员更聪明,所以我正在尝试了解和学习,也许有人可以帮助我。

我在一个孤立的空类中重现了这种情况:

private void Method(object obj)
{
    if (obj == null)
        return;
    var action = new Action(() =>
    {
        if (obj == null) // this condition is marked as always false
            return;
        // do stuff
    });
    // save reference to action somewhere
}

在这里的思考过程是,我不知道 action 何时可能被调用,虽然 obj 在创建 action 时不能为 null,但它很可能是调用。 ReSharper 似乎有不同的想法。

语言版本为 C# 9.0,可空引用类型禁用

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。