2017-10-19 132 views
1

我有以下代碼:Debug.Assert的()不拋出

enter image description here

正如你可以在快速瀏覽提示看,nNewCell.Style不算什麼。 儘管如此,行

Debug.Assert(nNewCell.Style IsNot Nothing) 
Debug.Assert(nNewCell.Style.GUID <> "") 

不會引發。

IDE不會引發異常或停止在那裏,IDE會忽略這些行。

我的項目設置是Debug x86。

什麼可能導致此問題?

回答

1

項目屬性➤編譯➤高級編譯選項

你會看到一個複選框Define DEBUG constant。必須檢查Debug函數才能正常工作。如果不是,它們將被忽略並且不會被編譯到您的程序集中。

這絕對好像你缺少DEBUG恆定的,因爲你的代碼應該拋出一個NullReferenceException由於線路Debug.Assert(nNewCell.Style.GUID <> "")和你的屏幕截圖顯示它是Nothing


一個簡短說明。這個問題很容易導致,並且在跟蹤與此相關的問題之前我已經損失了相當多的時間。創建新配置時,請始終複製相應類型(調試或發佈)。像這樣的問題通常是由複製Release或非調試配置引起的,但是試圖將它們視爲Debug。

+0

謝謝。看起來我的設置在更新VS時丟失了。 – tmighty