<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆 - 78  文章 - 25  trackbacks - 0
    <2009年10月>
    27282930123
    45678910
    11121314151617
    18192021222324
    25262728293031
    1234567

    常用鏈接

    留言簿

    隨筆分類(75)

    隨筆檔案(78)

    相冊

    實用Links

    我的Links

    搜索

    •  

    積分與排名

    • 積分 - 114117
    • 排名 - 516

    最新評論

    閱讀排行榜

    評論排行榜

    ■事件:事件是一種函數回調機制,它通過委托來實現函數回調。
    使用事件之前,首先在需要上報的類中聲明一個事件,通常包含兩個步驟:
    (1)定義一個委托類型(EventHandler)表示時間處理函數的類型
    (2)在類中用關鍵字event聲明一個EventHandler類型的事件,事件同樣具有訪問性,通常為public

    delegate void MyEventHandler(Object sender,EventArgs e)
    class EventClass{
        public event MyEventHandler MyEvent;
    }
    ■注冊和注銷事件
    一個類的使用者需要處理類的事件,通常需要3個步驟:
    (1)為要處理的事件增加處理函數
    (2)將事件處理函數通過+=運算符注冊到要處理的事件
    (3)處理完成后,通過-=運算符注銷不需要的事件處理函數


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace EventDelegate
    {
        delegate 
    void MyEventHandler(Object sender,EventArgs e);
        
    class EventClass {
            
    public event MyEventHandler MyEvent;
            
    protected void OnMyEvent(EventArgs e) {
                System.Console.WriteLine(
    "EventClass:Ready to fire a MyEvent");
                
    if (this.MyEvent != null) {
                    System.Console.WriteLine(
    "EventClass:fire a MyEvent");
                    
    this.MyEvent(this, e);
                }
            }
            
    public void FireEvent() {
                
    this.OnMyEvent(EventArgs.Empty);
            }
        }
        
    class Program
        {
            
    static void GetAEvent(object sender, EventArgs e) {
                System.Console.WriteLine(
    "GetAEvent:Get a Event EventClass.MyEvent");
            }
            
    static void Main(string[] args)
            {
                EventClass eventClass 
    = new EventClass();
                eventClass.MyEvent 
    += new MyEventHandler(GetAEvent);
                eventClass.FireEvent();
                eventClass.MyEvent 
    -= new MyEventHandler(GetAEvent);
                eventClass.FireEvent();
                System.Console.ReadLine();
            }
        }
    }

    運行結果:
    EventClass:Ready to fire a MyEvent
    EventClass:fire a MyEvent
    GetAEvent:Get a Event EventClass.MyEvent
    EventClass:Ready to fire a MyEvent



    posted on 2009-10-26 16:31 期待明天 閱讀(505) 評論(0)  編輯  收藏 所屬分類: CSharp
    主站蜘蛛池模板: 免费看黄的成人APP| 黄色a三级三级三级免费看| a级毛片免费完整视频| 国产亚洲精品福利在线无卡一| 成年网站免费入口在线观看 | 亚洲制服在线观看| 亚洲视频在线免费播放| 亚洲白色白色在线播放| 久久成人国产精品免费软件| 亚洲欧洲尹人香蕉综合| 少妇高潮太爽了在线观看免费| 亚洲一卡2卡3卡4卡国产网站 | 亚洲欧美日韩中文高清www777| 毛片a级毛片免费观看免下载| 久久亚洲精品国产精品婷婷| 大学生a级毛片免费观看| 亚洲AⅤ男人的天堂在线观看| 免费无遮挡无码永久在线观看视频| 国产产在线精品亚洲AAVV| 中文字幕亚洲综合久久菠萝蜜| 成人片黄网站色大片免费观看cn| 亚洲色无码一区二区三区| 亚洲一区二区在线免费观看| 亚洲国产精品成人精品小说| 四虎在线视频免费观看| 一级看片免费视频囗交| 久久亚洲私人国产精品vA| 久久精品免费一区二区喷潮| 黄色一级视频免费| 亚洲视频在线视频| 免费看美女让人桶尿口| a在线观看免费视频| 亚洲中文字幕久久久一区| 中文亚洲AV片不卡在线观看| 国产免费不卡视频| 九九全国免费视频| 亚洲中文字幕在线无码一区二区| 免费在线观看视频a| 30岁的女人韩剧免费观看| 小说区亚洲自拍另类| 亚洲男人天堂2017|