是否有一个版本的Debug.Assert()将检查发布条件?

时间:2011-07-19 19:03:07

标签: c# .net

我需要一个版本的Debug.Assert(),它在发布版本中仍会执行条件参数中的代码,但如果断言失败则不会显示断言对话框。 .NET 3.5中是否有这样的工具,或者我自己必须实现这个工具(如果我可以的话)?

2 个答案:

答案 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);