天天看点

C#处理事件的过程

首先,先说明事件跟委托的关系,事件并不等于委托,事件等于委托链。

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();
        }
    }
}
           

运行程序,可以看到如下输出:

C#处理事件的过程
C#处理事件的过程

亲,开始发工资啦!

我终于拿到工资啦!!!明天有钱旅游啦!!!

火热发送工资中...

源码链接:http://download.csdn.net/detail/scrystally/5763405