HI那里
我想知道是否有方法将所有Contract.Requiere合并到一个方法中,所以说出现这样的事情
public void MyMehod(Order var1, Cust var2)
{
Contract.Requires<ArgumentException>(var1 != null);
Contract.Requires<ArgumentException>(var2 != null);
//...
}
如果我打电话给 MyMehtod 并且 var1 和 var2 都为空,我会收到两条错误消息?
(也许这个例子不是很好)但是想法是如果调用方法,我想知道它的一切都是错的 那么,是否有人知道是否可以合并合同以便我收到一条错误消息?
答案 0 :(得分:1)
一种非常狡猾的方式 - 它不会扩展到许多参数 - 首先要有一个合同,如果两者都为空,它将会失败:
Contract.Requires<ArgumentException>(var1 != null || var2 != null);
或
Contract.Requires<ArgumentException>(!(var1 == null && var2 == null));
...但是你仍然需要两个人。我不认为我会建议做这个,但这是我唯一能想到的事情。