About delegate....
什么是委托?
--新华字典--
1.亦作"委托"。
2.将自己的事务嘱托他人代为处理。
3.交结,结纳。
4.犹依托,依靠。
- -! 我觉得在.NET中委托的解释应该选第二个
1
namespace AboutDelegate
2
{
3
class Program
4
{
5
//我叫委托,我啥也不会,只会指挥别人干活
6
//我手下的人必须跟我一个思路听我指挥,否则我不聘用他 --参数类型,返回值类型与委托一致
7
public delegate void MyDelegate(string str);
8
9
//我的员工A
10
static void EmployeeA(string task)
11
{
12
Console.WriteLine(task + "完成了,我是员工A");
13
}
14
//员工B
15
static void EmployeeB(string task)
16
{
17
Console.WriteLine(task + "完成了,我是员工B");
18
}
19
//员工C
20
static void EmoloyeeC(string task)
21
{
22
Console.WriteLine(task + "没完成,老子辞职不干了!");
23
}
24
25
26
//我的工作单位Main
27
static void Main(string[] args)
28
{
29
//Boss让MyDelegate把厕所刷了 MyDelegate把任务移交给了EmployeeA
30
MyDelegate taskA = new MyDelegate(EmployeeA);
31
taskA("刷厕所");
32
//Boss让MyDelegate把电冰箱修好
33
MyDelegate taskB = new MyDelegate(EmployeeB);
34
taskB("修电冰箱");
35
//Boss让MyDelegate找出拉登来
36
MyDelegate taskC = new MyDelegate(EmoloyeeC);
37
taskC("出现吧!拉登!");
38
39
40
41
Console.WriteLine("\n--------------集体任务!(串联)囧---------------");
42
MyDelegate task = taskA + taskB + taskC;
43
task("打豆豆!");
44
//MyDelegate辞掉了C
45
task -= taskC;
46
47
48
Console.WriteLine("\n---------------员工C被开除之后-----------------");
49
//执行
50
task("打豆豆!");
51
Console.ReadLine();
52
}
53
}
54
}
55
namespace AboutDelegate2
{3
class Program4
{5
//我叫委托,我啥也不会,只会指挥别人干活6
//我手下的人必须跟我一个思路听我指挥,否则我不聘用他 --参数类型,返回值类型与委托一致 7
public delegate void MyDelegate(string str);8

9
//我的员工A 10
static void EmployeeA(string task)11
{12
Console.WriteLine(task + "完成了,我是员工A");13
}14
//员工B 15
static void EmployeeB(string task)16
{17
Console.WriteLine(task + "完成了,我是员工B");18
}19
//员工C 20
static void EmoloyeeC(string task)21
{22
Console.WriteLine(task + "没完成,老子辞职不干了!");23
}24

25

26
//我的工作单位Main 27
static void Main(string[] args)28
{29
//Boss让MyDelegate把厕所刷了 MyDelegate把任务移交给了EmployeeA30
MyDelegate taskA = new MyDelegate(EmployeeA);31
taskA("刷厕所");32
//Boss让MyDelegate把电冰箱修好 33
MyDelegate taskB = new MyDelegate(EmployeeB);34
taskB("修电冰箱");35
//Boss让MyDelegate找出拉登来 36
MyDelegate taskC = new MyDelegate(EmoloyeeC);37
taskC("出现吧!拉登!");38

39
40

41
Console.WriteLine("\n--------------集体任务!(串联)囧---------------");42
MyDelegate task = taskA + taskB + taskC;43
task("打豆豆!");44
//MyDelegate辞掉了C 45
task -= taskC;46

47

48
Console.WriteLine("\n---------------员工C被开除之后-----------------");49
//执行 50
task("打豆豆!");51
Console.ReadLine();52
}53
}54
}55




浙公网安备 33010602011771号