2010-11-19 156 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

你应该去项目属性,代码契约选项卡并单击运行复选框。