委托、事件的个人理解
生活随笔
收集整理的這篇文章主要介紹了
委托、事件的个人理解
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
事件:一個用event進(jìn)行了封裝的委托類型的變量,使得在進(jìn)行注冊的時候只能使用+= 或者-=
需要一個觸發(fā)者和一個執(zhí)行者,類似于Observer模式中的Subject和Observer(當(dāng)一個對象的狀態(tài)發(fā)生改變時,所有依賴于他的對象都會得到通知并被自動更新。)
觸發(fā)者:對委托/事件進(jìn)行定義,并觸發(fā)事件的執(zhí)行。(Subject:監(jiān)視對象,當(dāng)達(dá)到條件時,會把參數(shù)發(fā)送給監(jiān)視其的對象)
執(zhí)行者:定義并執(zhí)行事件中注冊的方法。(Observer:觀察者,當(dāng)Subject中的事件執(zhí)行時,會告知Observer,進(jìn)而采取相應(yīng)的行動)
{
static void Main(string[] args)
{
General general = new General();
Solider solider = new Solider(general);
general.GiveOrder("Fire"); //2.觸發(fā)者運(yùn)行
Console.ReadLine();
}
}
class General
{
public delegate void GeneralDel(string order);
public event GeneralDel GeneralEvent;
public void GiveOrder(string order)
{
GeneralEvent(order); //3.觸發(fā)事件,自動運(yùn)行事件中注冊的方法
}
}
class Solider
{
public Solider(General general)
{
general.GeneralEvent += new General.GeneralDel(ExecuteOrder); //1.注冊方法
}
public void ExecuteOrder(string order)
{
Console.WriteLine("Solider {0}", order);
}
}
?
轉(zhuǎn)載于:https://www.cnblogs.com/Muller/archive/2012/01/10/2318176.html
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的委托、事件的个人理解的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 面向对象JS编程(一)——创建对象
- 下一篇: (转)网站推广优化教程100条(SEO,