<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

    搜索

    •  

    積分與排名

    • 積分 - 114086
    • 排名 - 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 期待明天 閱讀(504) 評論(0)  編輯  收藏 所屬分類: CSharp
    主站蜘蛛池模板: 精品亚洲永久免费精品| 在线观看人成网站深夜免费| 免费人成年激情视频在线观看 | 亚洲AV无码码潮喷在线观看| 一区二区三区视频免费| 国产一区二区三区在线观看免费| 亚洲女同成人AⅤ人片在线观看| 亚洲AV无码一区东京热| 在线毛片片免费观看| 亚洲av永久无码精品漫画| 国产白丝无码免费视频| 亚洲国产综合精品中文第一区| 91精品全国免费观看含羞草| 亚洲无限乱码一二三四区| 曰批视频免费30分钟成人| 亚洲熟妇少妇任你躁在线观看| 野花香在线视频免费观看大全| 国产亚洲综合色就色| 免费v片在线观看视频网站| 亚洲色一区二区三区四区| 国产精品免费视频一区| 亚洲av日韩av综合| 大学生一级特黄的免费大片视频| 亚洲国产无线乱码在线观看| 亚洲精品无码日韩国产不卡?V| 视频免费在线观看| 亚洲情a成黄在线观看| 日韩精品在线免费观看| 亚洲好看的理论片电影| 最近2019中文免费字幕| 深夜a级毛片免费无码| 亚洲国产美女精品久久久久∴| 污污网站免费观看| 亚洲熟妇无码AV不卡在线播放| 亚洲国产天堂久久综合| 99在线视频免费| 国产精品亚洲综合一区在线观看| 亚洲精品二区国产综合野狼| 久久精品免费全国观看国产| 国产黄在线播放免费观看| 亚洲精品午夜视频|