有趣的C#Contract.Requires评论错误?

时间:2010-10-29 22:33:37

标签: c# code-contracts

我有以下代码:

Contract.Requires(somecondition, "some message"/*some comment*/);

并且在某些时刻进行调试时,条件未得到满足,并且它使用通常的文本和注释抛出了异常! :P所以我得到了这个例外:

ContractException was unhandled.

Precondition failed: somecondition. "some message"/*some comment*/

所以我的问题是,这是一个错误还是什么?该方法的第二个参数是字符串类型,但它只接受文字,所以我知道整个方法是一个黑客,但它不应该接受该评论,对吗?

1 个答案:

答案 0 :(得分:2)

这是因为“Code Contracts rewriter”重写了该语句,使用户能够查看生成的异常消息中的所有信息(包括条件表达式本身,以及显然也是注释)。

http://visualstudiomagazine.com/articles/2010/06/23/code-contracts.aspx