Debug.Assert在Release模式下仍然有效,为啥?

rainyubin 2015-07-01 10:43:02
使用VS2005编写C#程序,在代码中添加了Debug.Assert的代码。
想要在Release的时候,这些代码无效,程序不中断。
但是在选择了Release模式后,Debug.Assert的代码仍然有效,程序发生中断。
想问大家一下,是我哪里配置错了吗?求解!
在网上查了一下,Release模式下Debug.Assert的代码应该无效才对。
...全文
587 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Poopaye 2015-07-01
  • 打赏
  • 举报
回复
定义了DEBUG就有效,和模式没什么关系 默认应该是无效的,看一下项目属性,是不是勾选了DEBUG,另外文件里是不是定义了DEBUG
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
问题已经解决,谢谢shingoscar。 请参照 http://bbs.csdn.net/topics/391064738
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
没描述清楚。 C#我试了一下,Debug.Assert在Release下是被忽略的。
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
引用 7 楼 shingoscar 的回复:
为什么不用assert? 非要去用.net的函数
感谢你一直关注着。 我就是感觉比较方便,呵呵。 C#我试了一下,Debug.Assert在Release下是好用的。也怪我比较懒,实在不好意思。 现在就是在C++ CLR下不好用的问题了。 也不是说非要用,但是干程序都有点偏执。我就是想知道为什么不好用~
Poopaye 2015-07-01
  • 打赏
  • 举报
回复
为什么不用assert? 非要去用.net的函数
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
引用 4 楼 shingoscar 的回复:
另外确认下这个Debug来自于System.Diagnostics
刚才确认了,也把命名空间引用全了,还是不行,如下: System::Diagnostics::Debug::Assert(axisNumber == "");
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
引用 3 楼 shingoscar 的回复:
C/C++? 应该是C#项目属性->生成->定义Debug常量
不好意思。习惯了就写成C#了,我现在是C++ CLR开发,和C#很类似,Debug.Assert的问题也是相同的。
Poopaye 2015-07-01
  • 打赏
  • 举报
回复
另外确认下这个Debug来自于System.Diagnostics
Poopaye 2015-07-01
  • 打赏
  • 举报
回复
C/C++? 应该是C#项目属性->生成->定义Debug常量
rainyubin 2015-07-01
  • 打赏
  • 举报
回复
引用 1 楼 shingoscar 的回复:
定义了DEBUG就有效,和模式没什么关系 默认应该是无效的,看一下项目属性,是不是勾选了DEBUG,另外文件里是不是定义了DEBUG
你好,Release时我在项目属性->C/C++->预定义里面定义的是NDEBUG。 C#代码文件里也没有定义DEBUG相关的宏。 还有没有别的可能吗?

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧