2013-05-25 27 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

這些書總是有一個巨大的勘誤。只需谷歌它找到它。 –

相關問題