如果Code Contracts可以进行静态检查并确保一切正确,为什么我应该允许ccrewrite重写二进制文件?
完全关闭ccrewrite是否正常?
答案 0 :(得分:4)
如果代码合同可以进行静态检查并确保一切正确吗?
仅在关于完整的应用程序时才会保留,而您不需要Assume()
任何内容。
在所有其他情况下(可重用的库组件等)代码契约可以验证内部逻辑,但没有任何东西可以取代前门的Requires()
。
答案 1 :(得分:1)
在Code Contracts论坛上定期提出的另一个问题是,静态验证程序可以并且确实存在错误。
答案 2 :(得分:0)
另一点是,如果在每个构建中使用它,静态验证程序可能非常慢。
您可以通过将运行时检查与单元测试结合使用来运行代码并发现问题来弥补这一点。