代码可以合并交叉代码的问题吗?

时间:2011-08-19 01:59:59

标签: .net-4.0 code-contracts

有没有办法指定交叉的代码契约要求,例如类级别的契约要求在调用该类的任何实例方法时实例变量为非null,否则调用将失败?

我是代码合同的新手,并且一直在浏览Feb 4, 2011 Code Contracts User Manual (PDF)MSDN docs,但是关于交叉功能的一切都没有突然出现。也许我正在寻找代码合同没有的功能。

1 个答案:

答案 0 :(得分:0)

我认为你所寻找的东西被称为“对象不变量”

从手册,§2.3

[ContractInvariantMethod]
private void ObjectInvariant () 
{
   Contract.Invariant ( this.y >= 0 );
   Contract.Invariant ( this.x > this.y );
}

在每个公共方法调用之后,将检查 对于正确封装的值,应与每次调用之前的值相同。