在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
{
LiSi lisi = new LiSi();
ZhangSan zhangsan = new ZhangSan();
zhangsan.Orders+=new RunHandle(lisi.Run);//ZhangSan一旦触发发号命令的事件LiSi的Run方法就会响应这个事件
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向左步走
}
}
}
浙公网安备 33010602011771号