C#處理事件的過程

來源:互聯網
上載者:User


首先,先說明事件跟委託的關係,事件並不等於委託,事件等於委託鏈。

C#中處理事件的六個步驟:
1、聲明事件所需的代理;
2、事件的聲明;
3、定義觸發事件的方法;
4、訂閱者定義事件處理常式;
5、向事件發行者訂閱一個事件;
6、觸發事件。

根據上面六個步驟,寫出一個事件的過程,代碼如下:

using System;using System.Collections.Generic;using System.Linq;using System.Text;namespace TestEvent{    class RichMan //老闆    {        public delegate void TreasurerSendMoney(); //1、聲明老闆發工資事件所需的代理-"財務員發工資"        public event TreasurerSendMoney OnSendMoney; //2、聲明財務員發工資事件        public void sendMoneyTimeOut() //3、觸發財務員發工資的方法        {            if (OnSendMoney != null)            {                Console.WriteLine("親,開始發工資啦!");                OnSendMoney();                Console.WriteLine("火熱發送工資中...");            }        }    }    class PoorMan //工人    {        public void TakeMoney() //4、工人拿到工資之後的處理方法        {            Console.WriteLine("我終於拿到工資啦!!!明天有錢旅遊啦!!!");        }    }    class Program    {        static void Main(string[] args)        {            RichMan richMan = new RichMan();            PoorMan poorMan = new PoorMan();            richMan.OnSendMoney += new RichMan.TreasurerSendMoney(poorMan.TakeMoney); //5、將工人拿工資之後的處理方法綁定到老闆發工資的事件中            richMan.sendMoneyTimeOut(); //6、觸發發工資事件的方法            Console.ReadLine();        }    }}

運行程式,可以看到如下輸出:

親,開始發工資啦!
我終於拿到工資啦!!!明天有錢旅遊啦!!!
火熱發送工資中...

源碼連結:http://download.csdn.net/detail/scrystally/5763405

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.