我有以下代码块,fortify 警告取消引用空指针(警告出现在代码的突出显示部分)。
这是误报吗?它正在检查发生警告的位置是否为 null。
更新: 添加了更多的代码。我们事先检查以确保 displayAttribute 不为空。会不会是因为 IsNotNull() 是一个扩展方法?
最佳答案
警告是 displayAttribute
本身可能是 null
而不是 Name
。如果是,则访问 Name
属性将导致 NullReferenceException
。鉴于 displayAttribute
已明确检查警告下方的 null
似乎警告有效
编辑
看起来您正在使用扩展方法来验证属性不是 null
。以这种方式使用扩展方法似乎有悖常理。分析引擎似乎同意我的看法,因为它无法推断出这就是您在这里所做的。
所以是的,你可以忽略这里的警告,但为什么要这样做呢?为什么不做一个普通的 displayAttribute != null
检查,这样开发人员和分析引擎就可以更容易地推断出您的代码实际上在做什么?
关于c# - 强化取消引用空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022851/