看板 NUU_CSIE 關於我們 聯絡資訊
剛剛打完 總覺得好像少了什麼東西 對,就是忘了講Multicast 雖然前面有稍微提了一下,不過應該也不是很容易理解 Multicast包涵了兩個類型 一個是delegate的部份,一個是Event的部份 就是多重委派以及多重事件 因為Event是由delegate為基礎,這個前面提到 所以delegate所具有的Multicast,延伸的Event也會有 那下面就直接看範例了 Eg. public delegate void SH_Delegate(); public event SH_Delegate Event_Action; private static void FuncA() { Console.WriteLine("Hi, SeptemHill"); } private static void FuncB() { Console.WriteLine("Hi, Ian"); } private static void FuncC() { for (int i = 0; i < 100; i++) { if (i % 2 == 0) { Console.WriteLine(i.ToString()); } } } private static void FuncD() { for (int i = 0; i < 100; i++) { if (i % 2 == 1) { Console.WriteLine(i.ToString()); } } } static void Main(string[] args) { SH_Delegate FuncPtr_1 = new SH_Delegate(FuncA); FuncPtr_1 += new SH_Delegate(FuncB); SH_Delegate FuncPtr_2 = new SH_Delegate(FuncC); FuncPtr_2 += new SH_Delegate(FuncD); EventHandle Instance = new EventHandle(); Instance.Event_Action += new SH_Delegate(FuncPtr_1); Instance.Event_Action += new SH_Delegate(FuncPtr_2); Instance.Event_Action(); } 這個範例直接包了多重委派以及多重事件 在FuncPtr_1的部份,依序assign了兩個函數FuncA、FuncB 在FuncPtr_2的部份,依序assign了兩個函數FuncC、FuncD 這部份是多重委派,也就是delegate給予多項工作 後面的Event_Action用「+=」加入了兩個delegate 分別是FuncPtr_1以及FuncPtr_2 這個部份則是多重事件 以上,補充完畢 應該不會有續篇了(?) -- ˍˍ 活出自己 ▕吞佛▏ 才是此生的快意 ▕童子▏  ̄ ̄ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.118.45.191
littleast:以上四篇已收錄至精華區,感謝學長熱情贊助XD 05/13 12:03
godman362:有空再講新東西,或是有需要再跟我說 05/13 13:07