15.6 从委托中删除一个方法
和增加引用相反,我们也可以从委托中删除一个引用方法(或者叫做解除引用)——使用"-="运算符来完成这一动作,如代码清单15-4所示。
代码清单15-4 从委托中删除一个方法代码示例
1 namespace ProgrammingCSharp4
2{
3 public delegate void DoProcess(string msg);
4
5 class DelegateSample
6{
7 void Process1(string msg)
8{
9 System.Console.WriteLine(“处理流程1:{0}”,msg);
10}
11
12 void Process2(string msg)
13{
14 System.Console.WriteLine(“处理流程2:{0}”,msg);
15}
16
17 public static void Main()
18{
19 DelegateSample sample=new DelegateSample();
20 DoProcess p1;
21 p1=sample.Process1;
22 p1+=sample.Process2;
23
24 System.Console.WriteLine(“调用委托p1:”);
25 p1(“测试数据”);
26
27 p1-=sample.Process1;
28 System.Console.WriteLine(“\n删除sample.Process1引用后调用委托p1:”);
29 p1(“测试数据”);
30}
31}
32}
上述代码的运行结果为:
调用委托p1:
处理流程1:测试数据
处理流程2:测试数据
删除sample.Process1引用后调用委托p1:
处理流程2:测试数据