![](/img/trans.png)
[英]Are Debug.Assert/Debug.Fail automatically conditionally compiled #if “DEBUG”
[英]Debug.Fail and Debug.Assert
我有一個關於 Debug.Fail 方法的問題,這讓我很困惑。 它來自 MeassureUp 測試,如下所示:
為了提高代碼的可靠性,您需要驗證一個重要值並在該值設置不正確時停止執行。 但是,您只想在調試期間停止執行。 您不希望使用應用程序發布版本的用戶遇到問題。
您應該使用哪種方法?
我回答 Debug.Assert 因為它有一個布爾條件作為參數,這意味着它可以驗證一個值。 Debug.Fail 僅將字符串作為應輸出任何消息的參數。 但這是官方推理:
Debug.Assert“不中斷處理”是什么意思? Debug.Assert 和 Debug.Fail 都提供了類似的彈出窗口,其中包含 Abort、Retry 和 Ignore 按鈕。 此外,Debug.Assert 計算表達式。
官方答案是錯誤的,包括他們的推理還是我誤解了什么?
只是沒有區別。 當條件為假時,Debug.Assert() 調用 Fail()。 因此 Assert() 和調用 Fail() 的 if 語句之間沒有區別。
我建議你找一個更好的網站。
我通常在switch/default:
語句中使用Debug.Fail()
,其中default:
永遠不會發生(除了拋出異常或其他任何錯誤處理)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.