合并前提条件一次返回错误?

时间:2010-11-29 17:48:49

标签: c# code-contracts

HI那里

我想知道是否有方法将所有Contract.Requiere合并到一个方法中,所以说出现这样的事情

public void MyMehod(Order var1, Cust var2)
{
   Contract.Requires<ArgumentException>(var1 != null);
   Contract.Requires<ArgumentException>(var2 != null);  
   //...
}

如果我打电话给 MyMehtod 并且 var1 var2 都为空,我会收到两条错误消息?

(也许这个例子不是很好)但是想法是如果调用方法,我想知道它的一切都是错的 那么,是否有人知道是否可以合并合同以便我收到一条错误消息?

1 个答案:

答案 0 :(得分:1)

一种非常狡猾的方式 - 它不会扩展到许多参数 - 首先要有一个合同,如果两者都为空,它将会失败:

Contract.Requires<ArgumentException>(var1 != null || var2 != null);

Contract.Requires<ArgumentException>(!(var1 == null && var2 == null));

...但是你仍然需要两个人。我不认为我会建议这个,但这是我唯一能想到的事情。