1
我习惯C#不执行溢出检查,作为语言规范状态(第7.5.12节):C# - 什么可能导致溢出检查在这里?
对于非常量表达式(表达式在运行时计算),其不被封闭的任何检查或未检查的运算符或语句,除非外部因素(例如编译器切换和执行环境配置)要求检查评估,否则将取消选中默认溢出检查上下文。
if ((uint)index >= (uint)TotalCount) ...
如果指数是负的,我希望使其超过TOTALCOUNT它成为一个大的正数:
我做当数组边界在低级别的代码检查正是利用了这一点。然而,令我惊讶的是,负数产生了OverflowException,我必须在unchecked()中包装表达式。我查看了Visual Studio中的项目选项,但没有看到启用或禁用溢出检查的选项。那么它为什么会在这里呢?
谢谢,我以前从没注意到,高级按钮! – Qwertie 2010-02-24 18:53:03