Contract.Requires和Contract.Ensures的差异

时间:2013-10-29 00:31:48

标签: c# contracts

我已经查看了微软网站上的差异,但无法真正看出差异。该网站的链接在下面

任何额外的解释都会很棒

使用visual studio c#

1 个答案:

答案 0 :(得分:7)

Requires是一个前置条件,这意味着指定的条件必须为先前到被调用的方法。 Ensures是一个后置条件,这意味着该方法可以保证指定的条件在方法调用完成后为时为真。

在方法执行时可能违反前提条件和/或后置条件:测试分别在进入和退出方法时完成。 不变条件是一个合同,表明指定的条件始终为真。

阅读Bertrand MeyerObject-Oriented Software Construction了解更多[更多]细节。迈耶的This paper更短[更短]。