c# - 强化取消引用空指针

标签 c# fortify

我有以下代码块,fortify 警告取消引用空指针(警告出现在代码的突出显示部分)。

enter image description here

这是误报吗?它正在检查发生警告的位置是否为 null。

更新: 添加了更多的代码。我们事先检查以确保 displayAttribute 不为空。会不会是因为 IsNotNull() 是一个扩展方法?

enter image description here

最佳答案

警告是 displayAttribute 本身可能是 null 而不是 Name。如果是,则访问 Name 属性将导致 NullReferenceException。鉴于 displayAttribute 已明确检查警告下方的 null 似乎警告有效

编辑

看起来您正在使用扩展方法来验证属性不是 null。以这种方式使用扩展方法似乎有悖常理。分析引擎似乎同意我的看法,因为它无法推断出这就是您在这里所做的。

所以是的,你可以忽略这里的警告,但为什么要这样做呢?为什么不做一个普通的 displayAttribute != null 检查,这样开发人员和分析引擎就可以更容易地推断出您的代码实际上在做什么?

关于c# - 强化取消引用空指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21022851/

相关文章:

c# - 如何显示在 .aspx 网站中以编程方式生成的表格

c# - 如何获取具有特定主题标签值的注释节点

ASP.NET MVC 不良做法 : Controller Action Not Restricted to POST in Asp.Net MVc

java - HP Fortify -- 注释方法参数

Fortify,如何通过命令开始分析

java - 已删除源代码文件的删除问题

c# - WebAPI ActionFilter 等待 ExecuteActionFilterAsync 无结果

c# - 为什么我在此代码中收到 "You have an error in your SQL syntax"错误?

java - 保护静态 SQL 查询免遭 SQL 注入(inject)

c# - 在 JavaScript 或 JQuery 中访问数据表