未选中
unchecked
关键字可防止编译器检查溢出/下溢。
例如:
const int ConstantMax = int.MaxValue;
unchecked
{
int1 = 2147483647 + 10;
}
int1 = unchecked(ConstantMax + 10);
如果没有 unchecked
关键字,两个加法操作都不会编译。
什么时候有用?
这很有用,因为它可以帮助加速绝对不会溢出的计算,因为检查溢出需要时间,或者当需要溢出/下溢行为时(例如,生成哈希代码时)。