我正在开发一个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
答案 0 :(得分:1)
您需要找到不同的解决方案。因为params
只接受给定它的每个参数并将它们填充到一个数组中,所以在同一个函数中它的两个实例没有意义。
MSDN正式确定了这一点:
a中的params关键字后不允许使用其他参数 方法声明,a中只允许一个params关键字 方法声明。
规范稍微不那么具体(第1.6.6.1节):
只有方法的最后一个参数可以是参数数组,参数数组的类型必须是一维数组类型。
但是只允许最后一个参数为params
意味着只能有一个参数,因为根据定义,第二个参数也不能是最后一个参数。