作者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