【发布时间】:2012-10-26 21:36:29
【问题描述】:
可能重复:
Why don’t languages raise errors on integer overflow by default?
为什么 C# 默认不使用算术溢出检查?
我认为,当这种情况发生时发生异常通常会更好,这样错误就不会被掩盖。我知道利用发生的“包装”行为有时很有用,但在这些情况下可以使用 unchecked 关键字来明确意图。
我希望这个决定是有意做出的,也许是为了增加与其他基于 C 语言的兼容性。
【问题讨论】:
-
可能出于性能原因 - 溢出检查很慢,并且在绝大多数情况下不需要。
-
@MichaelPetito,谢谢;这个问题似乎比这个问题好,而且答案很好,所以我认为应该关闭。