2010-11-19 312 views
1

所以我試圖運行與代碼契約一些簡單的代碼(我沒有用了一段時間)在Visual Studio 2010

static void Main(string[] args) 
    { 
     double res = sqrt(-5); 
    } 

    static double sqrt(int a) 
    { 
     Contract.Requires(a >= 0, "a must be >= 0!"); 

     return Math.Sqrt(a); 
    } 

但它似乎並沒有做任何設置代碼契約當我運行它時。從幾個月前我記得,它應該拋出一個關於a小於0的錯誤。

我重新從代碼合同網站重新安裝了Academic版本以保證安全,但這似乎仍然不起作用。代碼合同工作需要哪些步驟?

編輯:resharper告訴我在Contract.Requires(a >= 0);該方法被跳過,因爲它是「有條件的或部分方法沒有實施」。

感謝

+0

我想你想編寫Math.Sqrt(a)而不是Math.Sqrt(a * a)?當然,這對你的問題沒有幫助...... – Philipp 2010-11-19 06:55:24

+0

是的,它是一個錯字。 – 2010-11-19 07:05:43

回答

2

您應該檢查這個網頁:link text

你應該去項目屬性,代碼契約選項卡並單擊運行復選框。