如果我们在程序中使用以下循环,则循环永远不会在C#4.0中结束
for (int i = 1; i <= int.MaxValue; i++)
{
}
Run Code Online (Sandbox Code Playgroud)
这是因为向int.MaxValue(2147483647)添加1不会导致溢出异常,但会导致-2147483648(考虑到32位int和2的补充).
int i = int.MaxValue;
Console.WriteLine(i + 1);
Run Code Online (Sandbox Code Playgroud)
最近这种行为似乎发生了变化.请参阅算术操作导致OverflowException的问题.这可能是导致此更改的原因?