作者godman362 (青)
看板NUU_CSIE
標題[心得] delegate & Event (4)
時間Sun May 10 11:34:20 2009
剛剛打完
總覺得好像少了什麼東西
對,就是忘了講
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
1F:推 littleast:以上四篇已收錄至,感謝學長熱情贊助XD 05/13 12:03
2F:→ godman362:有空再講新東西,或是有需要再跟我說 05/13 13:07