C# 在什么情况下,我会将操作指定为未选中?
例如:C# 在什么情况下,我会将操作指定为未选中?,c#,math,unchecked,C#,Math,Unchecked,例如: int value = Int32.MaxValue; unchecked { value += 1; } 这在哪些方面有用?你能想出什么吗?在下列情况下使用未选中的: 您希望通过溢出来表示常量(这在指定位模式时非常有用) 您希望算术溢出而不导致错误 后者在计算散列代码时非常有用——例如,在项目中,除了生成散列代码外,还使用检查算法构建虚拟一切。当计算散列码时,发生溢出是完全正常的,这很好,因为我们并不真正关心结果作为一个数字-我们只希望它作为一个位模式,真的 这只是一个
int value = Int32.MaxValue;
unchecked
{
value += 1;
}
这在哪些方面有用?你能想出什么吗?在下列情况下使用
未选中的:
- 您希望通过溢出来表示常量(这在指定位模式时非常有用)
- 您希望算术溢出而不导致错误
后者在计算散列代码时非常有用——例如,在项目中,除了生成散列代码外,还使用检查算法构建虚拟一切。当计算散列码时,发生溢出是完全正常的,这很好,因为我们并不真正关心结果作为一个数字-我们只希望它作为一个位模式,真的
这只是一个特别常见的例子,但在其他情况下,您可能会非常高兴MaxValue+1
成为MinValue
应该注意的是未选中的
是默认设置,因此它是多余的,除非您启用了选中的
模式。假设:checked
关键字用于显式启用整型算术运算和转换的溢出检查。默认情况下,[…]如果表达式包含一个或多个非常量值,编译器不会检测到溢出。