![]() |
1
8
这几乎可以肯定是一种优化。NET框架代码非常重视检查参数,以让程序员陷入成功的深渊。但这不是免费的。成本相当低,许多类方法比检查花费的机器周期要多。 但是数组是特殊的。它们是框架中最核心的数据结构。几乎每个集合类都建立在它们之上。数组类中的任何开销都会直接影响位于它上面的许多代码的效率。避免检查是可以的,当内部代码需要将值强制转换为无符号时,它仍然会被隐式检查。而且它很少旅行。因此,检查两次并不值得得到更好的异常消息。 |
![]() |
2
5
OverflowException 在文档中,基本上将溢出定义为:
在这种情况下,负值超出了数组大小(或任何大小)的有效范围。 我可以看到这样的论点 ArgumentOutOfRangeException 在某些方面可能会更好——然而,数组定义中没有涉及参数(因为它不是一个方法),因此它也不是一个完美的选择。 |
![]() |
3
1
这可能是因为该大小是一个无符号整数。它将-1存储在2的补码中,当将其视为无符号整数时,它是可以存储的最大正整数。如果这个数字大于数组的可能大小,它将溢出。 警告:这纯粹是猜测。 |
![]() |
Adam · 分配内存块的不相交性? 7 年前 |
![]() |
Koray Tugay · 什么是规范? 9 年前 |
![]() |
Andy · 如何记录Scrum/敏捷/TDD过程中未定义的行为[已关闭] 10 年前 |
![]() |
eento · 使用where&和运算符动态链接规范 10 年前 |