在什么情况下,我应该将操作指定为未检查
本文关键字:检查 操作 情况下 我应该 在什么 | 更新日期: 2023-09-27 18:09:41
例如:
int value = Int32.MaxValue;
unchecked
{
value += 1;
}
这在哪些方面是有用的?你能想到什么吗?
使用unchecked
- 你想通过溢出来表达一个常量(这在指定位模式时很有用)
- 你想要算术溢出而不引起错误
后者在计算哈希码时很有用——例如,在Noda Time中,项目是用检查算法构建的,除了哈希码生成之外的虚拟一切。在计算哈希码时,发生溢出是完全正常的,这没关系,因为我们并不真正关心结果是否为数字 -我们只是希望它是位模式,真的。
这只是一个特别常见的例子,但也可能有其他时候,你真的很高兴MaxValue + 1
是MinValue