Если мы используем следующий цикл в программе, цикл никогда не заканчивается в C# 4.0.
for (int i = 1; i <= int.MaxValue; i++)
{
}
Это связано с тем, что добавление 1 к int.MaxValue (2147483647) не приведет к исключению переполнения, а приведет к -2147483648 (принимая во внимание 32-битное целое и дополнение 2).
int i = int.MaxValue;
Console.WriteLine(i + 1);
Кажется, поведение изменилось в последнее время. См. вопрос Арифметическая операция вызвала OverflowException .Что может быть причиной этого изменения?
i == int.MaxValue
. - person Oliver Charlesworth   schedule 19.08.2011