在什么情况下我会指定操作为未选中?
例如:
int value = Int32.MaxValue;
unchecked
{
value += 1;
}
这在哪些方面有用?你能想到什么吗?
For example:
int value = Int32.MaxValue;
unchecked
{
value += 1;
}
In what ways would this be useful? can you think of any?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在以下情况下使用
unchecked
:后者在计算哈希码时非常有用 - 例如,在 Noda Time 中,该项目是使用经过检查的算法构建的,用于除哈希代码生成之外的虚拟所有内容。当计算哈希码时,发生溢出是完全正常的,这很好,因为我们并不真正关心结果作为数字 - 我们只是希望它作为一个位模式,真的。
这只是一个特别常见的示例,但也有可能在其他时候您真的很高兴
MaxValue + 1
成为MinValue
。Use
unchecked
when:The latter is useful when computing a hash code - for example, in Noda Time the project is built with checked arithmetic for virtual everything apart from hash code generation. When computing a hash code, it's entirely normal for overflow to occur, and that's fine because we don't really care about the result as a number - we just want it as a bit pattern, really.
That's just a particularly common example, but there may well be other times where you're really happy for
MaxValue + 1
to beMinValue
.