プログラムで次のループを使用している場合、C# 4.0 ではループが終了しません。
for (int i = 1; i <= int.MaxValue; i++)
{
}
これは、int.MaxValue (2147483647) に 1 を追加してもオーバーフロー例外にはならず、-2147483648 になるためです (32 ビット int と 2 の補数を考慮して)。
int i = int.MaxValue;
Console.WriteLine(i + 1);
最近、挙動が変わったようです。算術演算が OverflowException を引き起こしたという質問を参照してください。この変更の背後にある理由は何ですか?