-已编辑-
我写了以下函数-
public static int params1(params int [] x) {
return 1;
}
我想将此函数作为参数传递给另一个函数,但这是编译错误-
public static int Foo(Func<params int [], int> myMethodName) {
return 1;
}
我应该如何将此函数传递给Foo函数?
实际上,我应该用更多细节描述我的问题-
我做了你写给我的东西,但是我注意到,如果我将参数定义为params,那么我在不带参数的情况下调用函数就没有问题。
这是新代码-
public static int params1(params int [] x) {
return 1;
}
public static int Foo(Func<int [], int> myMethodName) {
return myMethodName();
}
此代码中存在编译错误(因为它必须获取其类型为int []的参数),我该如何解决?
答案 0 :(得分:2)
您的问题可能是其中之一:
如果您只是尝试将params1
传递给Foo
,请从params
的声明中删除单词Foo
:
public static int Foo(Func<int [], int> myMethodName) {
return 1;
}
如果您希望Foo
能够像这样呼叫myMethodName
:
myMethodName(1, 2, 3);
然后您需要一个自定义委托:
public delegate int CustomDelegate(params int[] parameters);
如果只允许将接受params
参数的方法传递给Foo
,就我所知,没有办法做到这一点。