2010-02-24 53 views
1

我習慣C#不執行溢出檢查,作爲語言規範狀態(第7.5.12節):C# - 什麼可能導致溢出檢查在這裏?

對於非常量表達式(表達式在運行時計算),其不被封閉的任何檢查或未檢查的運算符或語句,除非外部因素(例如編譯器切換和執行環境配置)要求檢查評估,否則將取消選中默認溢出檢查上下文。

if ((uint)index >= (uint)TotalCount) 
    ... 

如果指數是負的,我希望使其超過TOTALCOUNT它成爲一個大的正數:

我做當數組邊界在低級別的代碼檢查正是利用了這一點。然而,令我驚訝的是,負數產生了OverflowException,我必須在unchecked()中包裝表達式。我查看了Visual Studio中的項目選項,但沒有看到啓用或禁用溢出檢查的選項。那麼它爲什麼會在這裏呢?

回答

7

它應該在項目中。

  1. 雙擊屬性文件夾。
  2. 生成選項卡。
  3. 單擊高級...按鈕。
  4. 取消選中「檢查算術上溢/下溢」。
+0

謝謝,我以前從沒注意到,高級按鈕! – Qwertie 2010-02-24 18:53:03

相關問題