|
|
1
24
从 The Code Contracts User Manual :
代码契约用于 static verification ; 想象一下,如果在编译时,您不仅发现了语法错误,而且还发现了 逻辑错误 . 这是静态程序验证的愿景。 您可以使用契约(和静态验证)来降低测试成本。。。特别是回归测试。举个例子,假设我写了一些代码来满足一些业务需求。。。但后来,性能需要改变,我需要优化。如果我首先编写一个契约,那么——当我的新优化代码被验证时——如果它不再满足原始契约,我将在IDE中得到一条错误消息,就像我有一个编译时错误一样。因此,您几乎可以立即发现并解决该bug,这比一轮测试的成本要低。 |
|
|
2
14
有一个 freely available chapter about code contracts 在即将出版的书中 C# in Depth, second edition . 有个叫乔恩·斯基特的家伙,你们中的一些人可能很熟悉他:) 至于实际用途。您可以在代码中的任何地方使用它们,但特别是如果您正在开发许多人将要使用的框架/API类型库,我希望它们会非常方便。代码的静态验证保存了 许多 与在运行时发现您没有处理某些边缘情况相比,时间要长得多。
下面是这样一个例子:
我最近才将我的私有类库转换为.NET4.0,但我计划很快向它添加代码契约。 |
|
|
3
8
在.Net中有很多地方使用合同。 >>Sources<< |
|
|
4
5
你见过一只鸟吗
使用代码契约,您可以编写如下内容:
这不仅仅是一个运行时检查-您可以设置它,这样如果您使用可能为null的参数调用此函数,您将得到一个编译错误。
|