<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
    主站蜘蛛池模板: 精品国产亚洲AV麻豆| 精品亚洲成a人片在线观看少妇| 亚洲人成网站色在线观看| 久草免费手机视频| 亚洲av综合avav中文| 青青操免费在线观看| 亚洲日韩v无码中文字幕| 9久热这里只有精品免费| 国产成人亚洲精品91专区手机| 一出一进一爽一粗一大视频免费的| 免费看国产精品麻豆| 免费又黄又爽又猛大片午夜| 亚洲精品无码成人片在线观看 | 中国黄色免费网站| 国产亚洲日韩在线三区| 永久在线观看免费视频| 亚洲午夜免费视频| 日韩精品无码区免费专区| 亚洲精品9999久久久久无码| 国产成人免费片在线观看| 国产免费牲交视频免费播放| 亚洲精品午夜国产VA久久成人| 在线观看片免费人成视频播放| 久久久无码精品亚洲日韩蜜桃| 91精品国产免费| 亚洲第一成年免费网站| 精品国产人成亚洲区| 最近免费中文字幕大全高清大全1| 亚洲天堂2017无码中文| 亚洲福利在线播放| 久久青草精品38国产免费| 亚洲熟女乱色一区二区三区 | 最近中文字幕国语免费完整| 亚洲妇女熟BBW| 久久激情亚洲精品无码?V| 久久99国产综合精品免费| 亚洲成av人在线观看网站| 亚洲色中文字幕无码AV| 国产福利在线免费| 99久久99这里只有免费的精品| 久久精品国产亚洲αv忘忧草|