如果我们在程序中使用以下循环,则循环永远不会在 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);
最近这种行为似乎发生了变化。请参阅问题算术运算导致溢出异常。此更改背后的原因可能是什么?