我有以下代碼:獲取代碼契約在Visual Studio中工作2010
class Program
{
static void Main(string[] args)
{
Console.WriteLine(SqrtRoot(0));
Console.WriteLine(SqrtRoot(10));
Console.WriteLine(SqrtRoot(-10));
Console.ReadKey();
}
public static int SqrtRoot(int i)
{
Contract.Requires(i >= 0);
return (int)Math.Sqrt(i);
}
}
我運行在調試模式下,它應該火了某種錯誤在最後一行
Console.WriteLine(SqrtRoot(-10));
儘管如此,出於某種原因,它不。它似乎忽略了Contract.Requires()調用。我應該在嘗試使用代碼合同時設置一些東西嗎?
我正在使用Visual Studio 2010 RC。
感謝
如果對於i = 0,i = 10和i = -10的值,將引發錯誤。我不明白。 – 2010-02-14 23:35:12
我剛剛試過用Contract.Requires(i> = 0);現在生活並不灰心。也許你必須按照Victor的說法給出異常類型。 –
2010-02-14 23:38:13
嗯......你說得對。有些東西不太合適......即使合同的默認行爲是拋出一個錯誤並顯示一個窗口。 – 2010-02-14 23:38:29