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