我需要一个版本的Debug.Assert(),它在发布版本中仍会执行条件参数中的代码,但如果断言失败则不会显示断言对话框。 .NET 3.5中是否有这样的工具,或者我自己必须实现这个工具(如果我可以的话)?
答案 0 :(得分:4)
为此使用Trace.Assert,它也适用于发布模式。有关如何使用其他方法而不是进行对话的信息,请参阅有关如何使用侦听器的文档。摘录:
消息框的显示取决于DefaultTraceListener的存在。如果DefaultTraceListener不在Listeners集合中,则不会显示消息框。可以通过< clear>删除DefaultTraceListener。 < listeners>的元素对于< trace>,< remove> < listeners>的元素for< trace>,或通过调用Listeners属性上的Clear方法(System.Diagnostics.Trace.Listeners.Clear())。
例如:
#if (!DEBUG)
System.Diagnostics.Trace.Listeners.Clear();
#endif
答案 1 :(得分:0)
为什么不简单地执行代码并使用Debug.Assert检查结果?
bool isOk = CodeToBeExecuted();
Debug.Assert(isOk == true);