我經常在Debug.Assert().
前任: Debug.Assert(!orderShipmentStatusLogs.GroupBy(c => new { c.Id, c.StartDateTime }).Any(c => c.Count() > 1));
在這種情況下 orderShipmentStatusLogs 可能是一個巨大的串列 - 所以這段代碼可能很慢。
為了性能,我問自己這是否聰明,我知道該Debug.Assert()方法在發布模式下被洗掉,但通過閱讀檔案:
傳遞給方法或屬性的任何引數仍由編譯器進行型別檢查。 https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.conditionalattribute?view=net-6.0
我有點懷疑。
那么我在這里是安全的還是我通過添加大量斷言而意外減慢了我的應用程式的速度?Debug.Assert()要優化的引數嗎?
uj5u.com熱心網友回復:
當您在發布模式下構建時,整Debug.Assert行都被優化掉了。所以:
Console.WriteLine("Before");
Debug.Assert(false);
Console.WriteLine("After");
變成:
Console.WriteLine("Before");
Console.WriteLine("After");
您可以使用 SharpLab 看到這一點。在Debug模式下Assert它仍然存在,但在Release中它消失了。
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/414356.html
標籤:
