1
我習慣C#不執行溢出檢查,作爲語言規範狀態(第7.5.12節):C# - 什麼可能導致溢出檢查在這裏?
對於非常量表達式(表達式在運行時計算),其不被封閉的任何檢查或未檢查的運算符或語句,除非外部因素(例如編譯器切換和執行環境配置)要求檢查評估,否則將取消選中默認溢出檢查上下文。
if ((uint)index >= (uint)TotalCount) ...
如果指數是負的,我希望使其超過TOTALCOUNT它成爲一個大的正數:
我做當數組邊界在低級別的代碼檢查正是利用了這一點。然而,令我驚訝的是,負數產生了OverflowException,我必須在unchecked()中包裝表達式。我查看了Visual Studio中的項目選項,但沒有看到啓用或禁用溢出檢查的選項。那麼它爲什麼會在這裏呢?
謝謝,我以前從沒注意到,高級按鈕! – Qwertie 2010-02-24 18:53:03