在什么情况下我会将操作指定为未选中?

Mas*_*tic 14 c# math unchecked

例如:

int value = Int32.MaxValue;

unchecked
{
    value += 1;
}
Run Code Online (Sandbox Code Playgroud)

这有什么用?你能想到吗?

Jon*_*eet 25

使用unchecked时间:

  • 你想表达一个常量的溢出(这在指定位模式时很有用)
  • 您希望算术溢出而不会导致错误

后者在计算哈希码时非常有用 - 例如,在Noda Time中,除了哈希码生成之外,项目是使用经过检查的算法构建的.在计算哈希码时,溢出发生是完全正常的,这很好,因为我们并不真正关心结果作为数字 - 我们只是想把它作为一个位模式,真的.

这只是一种特别常见的例子,但也有可能是其他的时候,你真的很高兴MaxValue + 1MinValue.