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