日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

委托、事件的个人理解

發布時間:2023/12/13 编程问答 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 委托、事件的个人理解 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

事件:一個用event進行了封裝的委托類型的變量,使得在進行注冊的時候只能使用+= 或者-=

需要一個觸發者和一個執行者,類似于Observer模式中的Subject和Observer(當一個對象的狀態發生改變時,所有依賴于他的對象都會得到通知并被自動更新。)

觸發者:對委托/事件進行定義,并觸發事件的執行。(Subject:監視對象,當達到條件時,會把參數發送給監視其的對象)

執行者:定義并執行事件中注冊的方法。(Observer:觀察者,當Subject中的事件執行時,會告知Observer,進而采取相應的行動)

  • 執行者把需要執行的方法注冊給觸發者的事件
  • 觸發者運行,當達到條件時觸發事件
  • 通過第一步的注冊,將自動運行執行者中的方法
  • class Program
    {
    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

    創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎

    總結

    以上是生活随笔為你收集整理的委托、事件的个人理解的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。