C#中事件是经常被用到的一种概念。如果要实现一个事件,首先要有两个对象,一个是触发事件的对象,一个是处理事件的对象。二者通过一个委托被联系在一起,.下边我就举一个简单的例子来说明一下事件的应用。假设如下场景

ZhangSan LiSi 两个人当ZhangSan发出命令时LiSi就要按照ZhangSan给出的命令参数跑步。下边是代码:

 

 

using System;

using System.Collections.Generic;

using System.Text;

 

namespace ConsoleApplication9

{

 

    public delegate void RunHandle(string  Dir,int Speed);//首先先要定义一个委托

     class Program

     {

         static void Main(string[] args)

         {

              LiSi lisi = new LiSi();

              ZhangSan zhangsan = new ZhangSan();

              zhangsan.Orders+=new RunHandle(lisi.Run);//ZhangSan一旦触发发号命令的事件LiSiRun方法就会响应这个事件

              zhangsan.BeginRun();

 

         }

     }

     class LiSi

     {

         public void Run(string  dir,int speed)//必须要有与委托定义时以至的参数

         {

              Console.WriteLine("lisi run {0} {1} meters",dir,speed);//定义一个响应事件的方法

         }

     }

     class ZhangSan

     {

         public event RunHandle Orders;//定义一个事件

 

         public void BeginRun()

         {

              Orders("left", 2);//事件发生的时候要给出处理事件函数所需的参数让LiSi向左步走

         }

 

     }

}