我試圖修復一個我無法重現的bug(yipeee!)。我有最初發現問題的用戶複製的堆棧跟蹤,它顯示代碼在檢查對象爲null的行上顯示空引用異常(這是未處理的)。如下所示:對條件空值檢查的NullReferenceException?
private void someFunction()
{
radioButton1.CheckedChanged -= checkedChangedEventHandler
radioButton2.CheckedChanged -= checkedChangedEventHandler
if (someObject != null) // throws NullReferenceException...allegedly
{
if (someObject.Property == something)
{
// set properties on some UI components
}
}
}
什麼樣的情況可能導致這種情況?
UPDATE
增加了一些更多的代碼。 SomeCunction方法被checkedChanged事件處理程序調用。作爲你們幾個建議
更新2
堆棧跟蹤一定是錯誤的。沒有操作符重載,並且該方法僅引用四個不是UI組件(標籤和單選按鈕)的對象,並且所有這些對象在初始化時僅分配一次,並且在獲取此代碼之前多次引用,因此任何在此之前,null引用將被捕獲。我將不得不更仔細地查看調用事件處理函數。
這裏是一個線程解釋與錯行號的堆棧跟蹤:
Wrong line number on stack trace
馬克它norepro在你的bug跟蹤系統,繼續前進! =) – Yuck
你能告訴我們堆棧跟蹤嗎? –
有更多的代碼可以看到嗎? – SirPentor