我有以下代码块强化是关于取消呈现空指针的警告(警告发生在代码的突出显示部分)。
这是假阳性吗?它正在检查警告发生的地方是否为空。
更新: 添加了一些代码。我们正在检查以确保displayAttribute不为null。可能是因为IsNotNull()是一种扩展方法吗?
答案 0 :(得分:4)
警告:displayAttribute
本身可能是null
而不是Name
。如果是,那么Name
属性的访问将导致NullReferenceException
。鉴于displayAttribute
明确检查null
正好低于警告,警告似乎是有效的
修改强>
您似乎正在使用扩展方法来验证该属性不是null
。以这种方式使用扩展方法似乎有点违反直觉。分析引擎似乎同意我的看法,因为它无法推断出这就是你在这里所做的。
所以是的你可以忽略这里的警告,但为什么呢?为什么不进行正常的displayAttribute != null
检查,以便开发人员和分析引擎能够更轻松地推断出您的代码实际在做什么?