我如何在我的方法中传递两个params表达式

时间:2015-03-06 23:57:24

标签: c# asp.net asp.net-mvc-4 asp.net-mvc-5

我正在开发一个asp.net mvc web应用程序,我需要传递两个params表达式如下: -

public RackJoin AllFindDetails(int id, params Expression<Func<Server, object>>[] includeProperties,params Expression<Func<Resource, object>>[] includeProperties2)
        {

但上述内容会引发以下错误: -

A parameter array must be the last parameter in a formal parameter list

1 个答案:

答案 0 :(得分:1)

您需要找到不同的解决方案。因为params只接受给定它的每个参数并将它们填充到一个数组中,所以在同一个函数中它的两个实例没有意义。

MSDN正式确定了这一点:

  

a中的params关键字后不允许使用其他参数   方法声明,a中只允许一个params关键字   方法声明。

规范稍微不那么具体(第1.6.6.1节):

  

只有方法的最后一个参数可以是参数数组,参数数组的类型必须是一维数组类型。

但是只允许最后一个参数为params意味着只能有一个参数,因为根据定义,第二个参数也不能是最后一个参数。