我将以下内容作为方法的第一行:
Contract.Requires(param1 != null, "param1 can't be null");
当param1为null时,没有任何反应,合同下面的代码继续执行。是否还需要其他信息来显示消息?
答案 0 :(得分:2)
您必须使用二进制重写器来插入合同的运行时强制执行。否则,Contract.Ensures方法之类的合同只能进行静态测试,并且如果违反合同,则不会在运行时抛出异常。您可以从MSDN DevLabs网站上的Code Contracts下载二进制重写器CCRewrite。 CCRewrite附带一个Visual Studio加载项,使您可以从项目“属性”页面激活运行时合同实施。二进制重写器和Visual Studio加载项不随Visual Studio 2010或Windows SDK一起提供。
答案 1 :(得分:0)
您必须在项目属性中配置检查(Project Explorer in Solution Explorer - > Properties - > Code Contracts,然后定义静态检查和运行时检查的设置。
未经检查的调用将以紫色波浪线加下划线,并在日志窗口中显示提示。