C# Language Keywords unchecked

30% OFF - 9th Anniversary discount on Entity Framework Extensions until December 15 with code: ZZZANNIVERSARY9


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).

Got any C# Language Question?