C# 委托之把委托从委托链(多播委托)移除

运用“-”运算符将委托从委托链移除

 1 class HelloWorld
 2    {
 3       //定义委托类型
 4       delegate void DelegationChain();
 5       static void Main(string[] args)
 6       {
 7          //用静态方法来实例委托
 8          DelegationChain mydelegateone=new DelegationChain(HelloWorld.Fun2);
 9           //用实例方法来实例委托
10          DelegationChain mydelegatetwo=new DelegationChain(new HelloWorld().Fun1);
11          //定义一个委托对象初始化为null
12          DelegationChain delegationChain=null;
13           //使用‘+链接委托,链接后就成了委托链
14           delegationChain+=mydelegateone;
15           delegationChain+=mydelegatetwo;
16           //使用‘-'把mydelegateone委托从委托链移除
17           delegationChain-=mydelegateone;
18           //调用委托链
19           delegationChain();
20          Console.ReadKey();
21       }
22       private void Fun1()
23       {
24           Console.WriteLine("Fun1");
25       }
26       private static void Fun2()
27       {
28           Console.WriteLine("Fun2");
29       }
30    }
例:将委托从委托链移除

运行结果:

原文地址:https://www.cnblogs.com/lbonet/p/6895442.html