我有一段使用代码合同的代码,我希望在编译时失败
...
int myInt = -1;
Contract.Ensures(myInt > 0);
...
使用合同的行显示为灰色,我得到一个工具提示,“跳过方法调用。编译器不会生成方法调用,因为该方法是有条件的,或者是没有实现的部分方法。”
以下是该项目属性的代码合同的屏幕截图:http://screencast.com/t/Q0famE8TR2
我正在使用.net 4.5。
答案 0 :(得分:1)
该消息来自ReSharper,即使你没有提及,我也认为你正在使用它。 ReSharper不了解Code Contracts的工作原理。
具体而言,它不知道“合同”页面设置会导致CONTRACTS_FULL
自动定义。如果要删除这些警告,则需要在项目的正常“构建属性”页面上将CONTRACTS_FULL
显式添加到条件定义列表中。