考虑下面的代码:与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:真。在这种情况下,这是针对游戏的,所以尽可能避免像这样的检查,但在调试时尽快得到错误是可以的。 –