将方法绑定到委托
可以将多个方法赋给同一个委托,或者叫将多个方法绑定到同一个委托,当调用这个委托的时候,将依次调用其所绑定的方法。委托对象可使用 "+=" 运算符进行合并。只有相同类型的委托可被合并。"-=" 运算符可用于从合并的委托中移除组件委托。
using System;
namespace DelegateAppl
{
delegate int NumberChanger(int n);
class TestDelegate
{
static int num = 10;
public static int AddNum(int p)
{
num += p;
return num;
}
public static int MultNum(int q)
{
num *= q;
return num;
}
public static int getNum()
{
return num;
}
static void Main(string[] args)
{
// 创建委托实例
NumberChanger nc;
NumberChanger nc1 = new NumberChanger(AddNum);
NumberChanger nc2 = new NumberChanger(MultNum);
nc = nc1;
nc += nc2; //合并委托
nc(5);
Console.WriteLine("Value of Num: {0}", getNum()); //75
nc -=nc1;
nc(5);
Console.WriteLine("Value of Num: {0}", getNum()); //375
}
}
}