我有以下代码:获取代码契约在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