因为有的时候需要一次性删除委托中的所有方法,有时候不知道委托中挂载了哪些方法,即可通过委托的方法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 (); ,,,,,,,} ,,,} }
依然事用到-=操作符。