我刚刚开始了解VS2010标配的代码契约库.我正在遇到的一件事是一些合同条款的真正含义.
例如,这两个陈述有何不同?
Contract.Requires(!mycollection.Any(a => a.ID == newID));
Contract.Requires(!Contract.Exists(mycollection, a => a.ID == newID));
Run Code Online (Sandbox Code Playgroud)
换句话说,Contract.Exists在实际应用中做了什么,对于使用我的函数的开发人员,还是对于静态代码分析系统?
好的,我找到了答案。根据《代码合约用户手册》第 2.7.2 节:
“也可以使用扩展方法 System.Linq.Enumerable.Any 而不是 Contract.Exists 。”
所以它们是等价的。我将使用 Any 而不是 Exists,因此它与我们代码的其余部分一致。
| 归档时间: |
|
| 查看次数: |
595 次 |
| 最近记录: |