开发者

In what situations would I specify operation as unchecked?

开发者 https://www.devze.com 2023-04-08 12:58 出处:网络
For example: int value = Int32.M开发者_如何学JAVAaxValue; unchecked { value += 1; } In what ways would this be useful? can you think of any?Use unchecked when:

For example:

int value = Int32.M开发者_如何学JAVAaxValue;

unchecked
{
    value += 1;
}

In what ways would this be useful? can you think of any?


Use unchecked when:

  • You want to express a constant via overflow (this can be useful when specifying bit patterns)
  • You want arithmetic to overflow without causing an error

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 be MinValue.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号