2014-01-09 87 views
1

我有以下代碼塊強化警告有關derefrencing空指針(警告發生在代碼的突出顯示部分)。強化解引用空指針

enter image description here

這是一個假陽性?它正在檢查發生警告的地方是否爲空。

更新: 添加了一些更多的代碼。我們正在檢查以確保displayAttribute不爲null。難道是因爲IsNotNull()是一個擴展方法嗎?

enter image description here

回答

4

該警告是displayAttribute本身可能是nullName。如果是,那麼訪問Name屬性將導致NullReferenceException。鑑於displayAttribute明確檢查null只是警告之下似乎警告是有效的

編輯

它看起來像您使用的是擴展方法來驗證該屬性不null。以這種方式使用擴展方法似乎很不直觀。分析引擎似乎同意我的觀點,因爲它無法推斷出這是你在這裏做的。

所以,你可以忽略這裏的警告,但爲什麼呢?爲什麼不只是做一個正常的displayAttribute != null檢查,所以開發人員和分析引擎可以更容易地推斷出你的代碼實際上在做什麼?

+0

更新了截圖。我們正在檢查以確保displayAttribute不爲null。對不起,我以前沒有包括這個。 –

+0

我完全同意你的擴展方法。我沒有真正構建它,只是解決安全問題。我這樣做也沒有意義。感謝您的反饋。 –