考慮下面的代碼:與Debug.Assert的條件編譯
#if DEBUG
if (Systems.Contains(system))
throw new InvalidOperationException("System already registered");
#endif
Debug.Assert(!Systems.Contains(system), "System already registered");
以前我用來做前者,因爲我已經發現Debug.Assert
。
難道我不應該總喜歡Debug.Assert
嗎?
- 它只存在於調試代碼中(它具有屬性
[Conditional("DEBUG")]
)。 - 在我看來,它更適合我的意圖(代碼完整性檢查,而不是提出例外待處理)。
- 這是少寫代碼。
Debug.Assert的勝利對我來說 –
說實話我在釋放模式,而奉送的99%的時間每一次,所以很少用或者 –
@jk:真。在這種情況下,這是針對遊戲的,所以儘可能避免像這樣的檢查,但在調試時儘快得到錯誤是可以的。 –