如何创建一个确保集合中所有项目都相同的后置条件?
我在考虑使用this solution,但我不确定这是否会导致一些不必要的副作用,或者是否会错误地使用代码合同。
答案 0 :(得分:1)
链接的代码似乎没有副作用,所以我不担心。我建议将检查all-equal条件的代码放入它自己的(纯)函数中,然后简单地调用它。
Contract.Ensures(AllEqual(myEnumeration));
这意味着AllEqual必须至少与方法本身一样可见,但我认为它会让一切变得更清晰。