C# 是否合并合同先决条件以返回一次错误?

C# 是否合并合同先决条件以返回一次错误?,c#,code-contracts,C#,Code Contracts,你好 我想知道是否有任何方法可以合并所有合同。需要一个方法,所以说这样的事情会发生 public void MyMehod(Order var1, Cust var2) { Contract.Requires<ArgumentException>(var1 != null); Contract.Requires<ArgumentException>(var2 != null); //... } public void MyMehod(订单var1,

你好

我想知道是否有任何方法可以合并所有合同。需要一个方法,所以说这样的事情会发生

public void MyMehod(Order var1, Cust var2)
{
   Contract.Requires<ArgumentException>(var1 != null);
   Contract.Requires<ArgumentException>(var2 != null);  
   //...
}
public void MyMehod(订单var1,客户var2)
{
Contract.Requires(var1!=null);
Contract.Requires(var2!=null);
//...
}
如果我调用mymetod并且var1和var2都为null,那么我会得到两条错误消息吗

(也许这个例子不太好)但是如果调用这个方法,我想知道它的所有错误
那么,有没有人知道是否可以合并这些契约,这样我就可以返回一条错误消息呢?

一个真正粗糙的方法——它不能扩展到很多参数——是首先创建一个契约,如果两者都为空,它将失败:

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

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

。。。但是你仍然需要两个单独的。我不建议这样做,但这是我能马上想到的唯一一件事。

一种真正粗俗的方法——它不适用于大量的争论——是首先签订一份合同,如果双方都无效,该合同将失败:

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

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

。。。但是你仍然需要两个单独的。我不认为我会建议真的这样做,但这是我唯一能马上想到的事情。

谢谢Jon,非常快的回答:)。这将是一个方便的特点。约翰回答得很快:)。这将是一个方便的功能