委托的组合

委托的组合

委托是可以相加的,可以形成一个新的委托对象,
调用这个新的委托对象的时候,会按顺序把组合的委托依次执行;
MyDel zh = new MyDel(F1) + new MyDel(F1) + new MyDel(F1);

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
class Program
{
static void Main(string[] args)
{
MyDel d1 = F1;
MyDel d2 = F2;
MyDel d3 = F3;
MyDel zh = d1 + d2 + d3;//委托是可以相加的,可以形成一个新的委托对象,
//调用这个新的委托对象的时候,会按顺序把组合的委托依次执行;
//MyDel zh = new MyDel(F1) + new MyDel(F1) + new MyDel(F1);
zh(6);

MyDel zh2 = d1 + d3;
Console.WriteLine("第二次:");
zh2(8);
Console.WriteLine("第三次:");
zh = zh - d1;
zh(3);
Console.ReadKey();

}

static void F1(int i)
{
Console.WriteLine("我是F1=" + i);
}
static void F2(int i)
{
Console.WriteLine("我是F2=" + i * 2);
}
static void F3(int i)
{
Console.WriteLine("我是F3=" + i * i);
}

delegate void MyDel(int i);

}