2017-10-19 106 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