亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

Events基本概念----Beginning Visual C#

2019-11-17 02:43:39
字體:
來源:轉載
供稿:網友

Events基本概念----Beginning Visual C#

一個事件的發生需要有觸發條件,如定時發生,鼠標點擊等,以及即將發生的事件本身,因此,events相關的最簡單的示例如下:

// 時間觸發器class TimerTrigger{    PRivate Timer myTimer;    public TimerTrigger()     {        myTimer = new Timer(100);    }        public TimerTrigger(int timeInterval)    {        myTimer = new Timer(timeInterval);    }    // 向時間觸發器添加具事件的handler    public void AddEventHander(ElapsedEventHandler source)    {        myTimer.Elapsed += source;    }    public void Start()    {        myTimer.Start();    }    public void Stop()    {        myTimer.Stop();    }}class Program{    static int counter = 0;    static string displayString =         "This string will appear one letter at a time. ";    // 即將被添加到時間觸發器的事件    static void WriteChar(object source, ElapsedEventArgs e)    {        Console.Write(displayString[counter++ % displayString.Length]);    }    public static void Main()    {        TimerTrigger timerTrigger = new TimerTrigger(100);        timerTrigger.AddEventHander(new ElapsedEventHandler(WriteChar));        timerTrigger.Start();        Console.ReadLine();    }}

在上面的例子的main函數中,直接使用了c#自帶的ElapsedEventHandler delegated類型,那么如何自定義事件處理函數呢?具體如下:

// 自定義時間處理代表public delegate void MessageHandler(string message);class TimerTrigger{    private Timer myTimer;    private event MessageHandler MessageArrived;    public TimerTrigger(int timeInterval)    {        myTimer = new Timer(timeInterval);        myTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);    }    public void AddEventHandler(MessageHandler source)    {        MessageArrived += source;     }    public void Start()    {        myTimer.Start();    }    public void Stop()    {        myTimer.Stop();    }    private void CheckForMessage(object source, ElapsedEventArgs e)    {        Console.WriteLine("Checking for new messages.");        if (MessageArrived != null)        {            MessageArrived("hello world");        }    }}class Program{    static int counter = 0;    static void WriteFirstMessage(string message)    {        Console.WriteLine("The First {0} number: {1}", message, counter++);    }    static void WriteSecondMessage(string message)    {        Console.WriteLine("The Second {0} number: {1}", message, counter++);    }    public static void Main()    {        TimerTrigger timerTrigger = new TimerTrigger(100);        timerTrigger.AddEventHandler(new MessageHandler(WriteFirstMessage));        timerTrigger.AddEventHandler(new MessageHandler(WriteSecondMessage));        timerTrigger.Start();        Console.ReadLine();    }}

在上述的例子中,將消息傳遞給處理事件所用的函數為WriteFirstMessage(string message),其傳遞的參數為string類型的。再考慮道<Timer>.ElapsedEventHandler所代表的函數的傳遞參數為:(object source, ElapsedEventArgs e)兩個參數,那么我們能否實現類似的形式呢?這是可以的,如下:

public class MessageArrivedEventArgs : EventArgs{    private string message;    public string Message    {        get        {            return message;        }    }    public MessageArrivedEventArgs()    {        message = "No message sent.";    }    public MessageArrivedEventArgs(string newMessage)    {        message = newMessage;    }}         public delegate void MessageHandler(TimerTrigger source,    MessageArrivedEventArgs e);public class TimerTrigger{    private Timer myTimer;    private event MessageHandler MessageArrived;    public TimerTrigger(int timeInterval)    {        myTimer = new Timer(timeInterval);        myTimer.Elapsed += new ElapsedEventHandler(CheckForMessage);    }    public void AddEventHandler(MessageHandler source)    {        MessageArrived += source;     }    public void Start()    {        myTimer.Start();    }    public void Stop()    {        myTimer.Stop();    }    private void CheckForMessage(object source, ElapsedEventArgs e)    {        Console.WriteLine("Checking for new messages.");        if (MessageArrived != null)        {            MessageArrived(this, new MessageArrivedEventArgs("hello world"));        }    }}class Program{    static int counter = 0;    static void WriteFirstMessage(TimerTrigger source, MessageArrivedEventArgs e)    {        Console.WriteLine("The First {0} number: {1}", e.Message, counter++);    }    static void WriteSecondMessage(TimerTrigger source, MessageArrivedEventArgs e)    {        Console.WriteLine("The Second {0} number: {1}", e.Message, counter++);    }    public static void Main()    {        TimerTrigger timerTrigger = new TimerTrigger(100);        timerTrigger.AddEventHandler(new MessageHandler(WriteFirstMessage));        timerTrigger.AddEventHandler(new MessageHandler(WriteSecondMessage));        timerTrigger.Start();        Console.ReadLine();    }}

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
日韩在线播放一区| 久久视频在线看| 欧美精品一区二区免费| 91久久精品国产91久久性色| 国产亚洲欧美一区| 精品视频久久久久久久| 国产精品福利无圣光在线一区| 国产精品美女久久久免费| 中文字幕亚洲欧美一区二区三区| 91久久久久久| 国产成+人+综合+亚洲欧美丁香花| 国产精品人成电影在线观看| 亚洲一区二区三区在线视频| 日韩欧美国产成人| 国产精品美女久久久免费| 久久久久久久爱| 亚洲激情久久久| 国产精品igao视频| 欧美激情亚洲激情| 78m国产成人精品视频| 亚洲男人第一网站| 欧美丰满少妇xxxxx| 亚洲第一福利网| 18性欧美xxxⅹ性满足| 欧美日本精品在线| 久久国产精品视频| 亚洲第一免费网站| 国产精品吴梦梦| 久久久噜噜噜久噜久久| 中文字幕亚洲综合久久筱田步美| 久久人人爽人人| 久久久精品免费视频| 亚洲国产欧美一区二区丝袜黑人| 久久精品国产99国产精品澳门| 欧美日韩在线免费| 欧美亚洲国产视频小说| 日韩精品中文字幕在线播放| 欧美高清在线视频观看不卡| 中文字幕av一区二区三区谷原希美| 欧美在线国产精品| 亚洲free性xxxx护士hd| 亚洲国产成人久久综合| 国产精品国产三级国产aⅴ浪潮| 亚洲999一在线观看www| 在线不卡国产精品| 久久精品亚洲热| 91精品成人久久| 亚洲精品久久7777777| 另类专区欧美制服同性| 国产精品大片wwwwww| 久久伊人精品一区二区三区| 日韩电影免费在线观看中文字幕| 久久久久久久久久国产| 国外成人免费在线播放| 久久成人精品电影| 欧美区二区三区| 国模精品视频一区二区| 久久亚洲私人国产精品va| 亚洲最大在线视频| 国产成人精品一区| 国产在线拍偷自揄拍精品| 欧美在线视频观看免费网站| 97国产成人精品视频| 成人www视频在线观看| 国产精品成熟老女人| 久久久久日韩精品久久久男男| 黑人极品videos精品欧美裸| 欧美黄色片在线观看| 另类少妇人与禽zozz0性伦| 国产精品久久久久久超碰| 亚洲码在线观看| 久久这里有精品视频| 孩xxxx性bbbb欧美| 精品综合久久久久久97| 大荫蒂欧美视频另类xxxx| 中文字幕亚洲欧美日韩高清| 亚洲日本欧美中文幕| 亚洲男人天堂九九视频| 狠狠躁天天躁日日躁欧美| 在线看福利67194| 日韩亚洲在线观看| 成人精品一区二区三区电影免费| 国产精品羞羞答答| 91tv亚洲精品香蕉国产一区7ujn| 91久久精品国产91久久| 91精品视频一区| 精品久久久久人成| 成人福利网站在线观看| 欧美大肥婆大肥bbbbb| 亚洲视屏在线播放| 国产999在线| 亚洲综合在线小说| 成人在线国产精品| 国产午夜精品视频| 97在线视频免费看| 亚洲精品国产精品自产a区红杏吧| 中文字幕在线亚洲| 国产精品黄色影片导航在线观看| 亚洲九九九在线观看| 亚洲精品国产美女| 91精品国产高清自在线看超| 欧美精品videofree1080p| 欧美日韩国产中文精品字幕自在自线| 一区二区成人av| 亚洲图中文字幕| 亚洲精品国产拍免费91在线| 亚洲精品资源美女情侣酒店| 午夜精品一区二区三区在线播放| 激情成人中文字幕| wwwwwwww亚洲| 欧美肥老太性生活视频| 51久久精品夜色国产麻豆| 欧美在线观看视频| 超薄丝袜一区二区| 夜夜嗨av色综合久久久综合网| 欧洲亚洲妇女av| 日本精品久久电影| 亚洲aa中文字幕| 午夜精品久久久久久99热| 这里只有精品在线观看| 日韩成人免费视频| 亚洲精品久久久久中文字幕欢迎你| 久久久久久久久电影| 国模精品系列视频| 国产精品久久久久久久久男| 亚洲精品国产品国语在线| 久久亚洲欧美日韩精品专区| 久久免费精品日本久久中文字幕| 91老司机在线| 国产精品网站入口| 久久久久久久久中文字幕| 成人a在线观看| 亚洲xxxx视频| 精品国产欧美一区二区三区成人| 狠狠躁夜夜躁人人爽超碰91| 久久综合九色九九| 国产免费一区二区三区在线观看| 亚洲自拍偷拍福利| 日韩精品亚洲视频| 欧美一区二粉嫩精品国产一线天| 日韩69视频在线观看| 亚洲另类欧美自拍| 日韩视频永久免费观看| 爱福利视频一区| 成人做爽爽免费视频| 欧美孕妇与黑人孕交| 欧美日韩亚洲高清| 色樱桃影院亚洲精品影院| 精品美女永久免费视频| 久久影院资源网| 在线不卡国产精品| 精品国偷自产在线| 国内精品400部情侣激情| 欧美激情在线狂野欧美精品| 欧美日韩国产精品一区二区三区四区| 国产午夜精品视频| 欧美成aaa人片免费看| 亚洲欧美一区二区三区久久| 亚洲网址你懂得| 国产mv久久久| 萌白酱国产一区二区| 在线观看视频亚洲| 国产精品jvid在线观看蜜臀| 91麻豆桃色免费看|