2013-05-25 26 views
7

我有一个关于Debug.Fail方法的疑问,它困扰着我。它来自MeassureUp测试,如下所示:Debug.Fail和Debug.Assert

为了提高代码的可靠性,您希望验证重要值并在值设置不正确时停止执行。但是,只想在调试期间停止执行。您不希望发布版本的应用程序的用户遇到问题。

您应该使用哪种方法?

  • Debug.Assert的
  • Debug.Flush
  • Debug.Fail(根据MeassureUp测试正确答案)(我的答案)
  • Debug.Indent

我回答Debug.Assert的因为它有一个布尔条件作为参数,这意味着它可以验证一个值。 Debug.Fail只有字符串作为参数用于输出任何消息。但这里是官方推理:

  • Debug.Fail导致调试器在代码行中断并输出一条失败消息。
  • Debug.Assert评估条件并显示消息,但不会中断处理。
  • Debug.Flush刷新调试输出缓冲区。
  • Debug.Indent控制输出格式。

它们是什么意思,因为Debug.Assert“不中断处理”? Debug.Assert和Debug.Fail都提供了一个类似的带有Abort,Retry和Ignore按钮的弹出窗口。此外,Debug.Assert会评估一个表达式。

官方回答错误,包括他们的推理还是我误解了一些东西?

回答

9

只是没有区别。 Debug.Assert()在条件为false时调用Fail()。所以Assert()和一个调用Fail()的if语句之间没有区别。

我建议你找到一个更好的网站。

+0

好的,谢谢。 .NET Foundation的70-536考试附带了练习测试。但它似乎有一些错误。 –

+1

这些书总是有一个巨大的勘误。只需谷歌它找到它。 –

相关问题