Debug.Fail和Debug.Assert

Kas*_*sen 8 .net debugging

我有一个关于Debug.Fail方法的问题让我很困惑.它来自MeassureUp测试,如下所示:

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

你应该使用哪种方法?

  • 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评估表达式.

官方答案是错的,包括他们的推理还是我误解了什么?

Han*_*ant 13

没有区别.当条件为false时,Debug.Assert()调用Fail().所以Assert()和调用Fail()的if语句之间没有区别.

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