c#一次性删除委托中的所有方法

  

因为有的时候需要一次性删除委托中的所有方法,有时候不知道委托中挂载了哪些方法,即可通过委托的方法GetInvocationList得到此委托中所挂载的所有的方法一次行删除。来一个例子:

using 系统;   using  System.Collections.Generic;   using 来;   using 包含;   namespace 外种皮   {   ,,,public  class 程序   ,,,{   ,,,,,,,public  delegate  void  Delistener (string 名称);   ,,,,,,,public  void 塞娅(string 名称)   ,,,,,,,{   ,,,,,,,,,,,Console.WriteLine (“A :{0}”,,名字);   ,,,,,,,}   ,,,,,,,public  void  SayB (string 名称)   ,,,,,,,{   ,,,,,,,,,,,Console.WriteLine (“B :{0}”,,名字);   ,,,,,,,}   ,,,,,,,static  void  Main (string [], args)   ,,,,,,,{   ,,,,,,,,,,,Program  p =, new 项目();   ,,,,,,,,,,,Delistener  myDe =, p.SayA;   ,,,,,,,,,,,Console.WriteLine (myDe);   ,,,,,,,,,,,myDe  +=, p.SayB;   ,,,,,,,,,,,Console.WriteLine (myDe);   ,,,,,,,,,,,代表[],ar =,, myDe.GetInvocationList ();   ,,,,,,,,,,,myDe (“Aonaufly”);   ,,,,,,,,,,,for  (int 小姐:=,0;,小姐:& lt;, ar.Length;,我+ +)   ,,,,,,,,,,,{   ,,,,,,,,,,,,,,,myDe  -=, ar[我],as  Delistener;   ,,,,,,,,,,,}   ,,,,,,,,,,,Console.WriteLine (myDe);   ,,,,,,,,,,,Console.Read ();   ,,,,,,,}   ,,,}   }

依然事用到-=操作符。

c#一次性删除委托中的所有方法