簡體   English   中英

是否有 Debug.Assert() 版本可以檢查發布時的條件?

[英]Is there a version of Debug.Assert() that will check the condition on release?

我需要一個 Debug.Assert() 版本,在發布版本中,它仍將執行條件參數中的代碼,但如果斷言失敗,則不會顯示斷言對話框。 .NET 3.5 中是否有這樣的工具,還是我必須自己實現(如果我可以的話)?

為此使用Trace.Assert ,它也可以在發布模式下工作。 請參閱有關如何使用偵聽器使用另一種方法而不是出現對話框的文檔。 摘錄:

消息框的顯示取決於 DefaultTraceListener 的存在。 如果 DefaultTraceListener 不在 Listeners 集合中,則不會顯示消息框。 DefaultTraceListener 可以通過 <trace> 的 <listeners> 的 <clear> 元素、 <trace> 的 <listeners> 的 <remove> 元素或通過調用 Listeners 屬性 (System.Diagnostics.Trace) 上的 Clear 方法來刪除.Listeners.Clear())。

例如:

#if (!DEBUG)
    System.Diagnostics.Trace.Listeners.Clear();
#endif

為什么不簡單地執行代碼並使用 Debug.Assert 檢查結果?

bool isOk = CodeToBeExecuted();
Debug.Assert(isOk == true);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM