如何开始使用代码合同?

5
我看到了一份关于C#代码合同的精彩演示,我想开始将它们应用到我的代码中。我希望我的代码已经有了它们。从哪里开始?
我没有带走任何印刷材料。有什么建议的阅读材料吗?
对于Code Contracts的初学者有什么建议吗?
提前感谢您的帮助。

2
http://devjourney.com/blog/code-contracts-part-1-introduction/ - albertjan
2
请注意,.NET Framework BCL中的代码合同注释有些不完整。例如,许多始终返回非空对象的方法(除非它抛出异常)没有被标记为这样。这会迫使您在代码中添加null检查或“Assume”调用,以满足静态分析器的要求。 - phoog
2
@phoog 是正确的,但是代码合同团队一直在努力将合同添加到越来越多的BCL中,因此这几乎每个版本都有所改进。 - Andy
@Andy 谢谢,这很好知道。我必须承认,我已经很久没有看过代码合同了,所以我会查看最新版本,并在将来继续关注。 - phoog
2个回答

6

我建议先阅读设计契约的维基百科,然后深入研究微软的实现文档。要将其应用于代码中,你可以从任何地方开始,但最好从可能影响最小的区域开始。因此,如果适当的话,可以向ctor参数添加一些Contract.Requires。当你更加熟悉时,可以将它们添加到接口中,但请注意,这可能会引起问题,但是这是好事。错误或警告意味着你正在违反DbC,很可能违反了Liskov替换原则


5

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接