不能将Func与参数一起使用



我有一个问题的例子。

基本上,我需要将一个方法传递给另一个包含参数的方法。

public void test() {
var test = Add(Domath(5, 5)); // should be 10
}
public int Domath (int a, int b) {
return a + b;
}
public int Add (Func<int, int, int> math){
return math();
}

这样不行,我不知道为什么。这只是一个极简主义的例子。有办法让它发挥作用吗?

让我们看看

public int Add (Func<int, int, int> math){
return math();
}

不能返回return math();:注意,math需要两个参数,而这两个参数未传递给math()。您可以将Add修改为

public int Domath (int a, int b){
return a + b;
}
// We are going to add first and second
// with a help of math function
public int Add (int first, int second, Func<int, int, int> math = null) {
// If math is not provided, we use Domath functon 
if (math == null)
math = Domath;
// Finally, we call math with required two arguments
return math(first, second);
}  

现在你可以把

public void test(){
var test = Add(5, 5);
}

public void test(){
var test = Add(5, 5, Domath);
}

最新更新