对作为方法中的参数传递的委托执行的操作
本文关键字:执行 操作 参数传递 方法 | 更新日期: 2023-09-27 18:29:51
作为任务的一部分,我必须编写一个简单的委托,它接受两个int并返回int,这很容易
public delegate int Foo(int X, int Y);
public static int mul(int x, int y)
{
return x * y;
}
public static int add(int x, int y)
{
return x + y;
}
Foo f1 = mul;
但是,我如何编写一个以两个委托(Foo)为参数,并返回委托的方法呢?委托将是函数参数结果的乘积?如何调用该函数?
您可以试试这个。
public delegate int AddThanMul(int a, int b, int c, int d);
public static AddThanMul CreateAddThanMulFunction(Foo add1, Foo add2)
{
return (a,b,c,d) => add1(a,b) * add2(c,d);
}
使用
var func = CreateAddThanMulFunction(add, add);
var result = func(1,2,3,4); //returns 21
同样如前所述,您可以使用'Func<>'而不是委托。有时它可能更简单。
例如,delegate int Foo(int X, int Y)
等于Func<int,int,int>