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);
該方法被跳過,因爲它是「有條件的或部分方法沒有實施」。
感謝
我想你想編寫Math.Sqrt(a)而不是Math.Sqrt(a * a)?當然,這對你的問題沒有幫助...... – Philipp 2010-11-19 06:55:24
是的,它是一個錯字。 – 2010-11-19 07:05:43