C# Language unchecked


The unchecked keyword prevents the compiler from checking for overflows/underflows.

For example:

const int ConstantMax = int.MaxValue;
    int1 = 2147483647 + 10;
int1 = unchecked(ConstantMax + 10);

Without the unchecked keyword, neither of the two addition operations will compile.

When is this useful?

This is useful as it may help speed up calculations that definitely will not overflow since checking for overflow takes time, or when an overflow/underflow is desired behavior (for instance, when generating a hash code).