理解C#中事件和委托的例子
2010-01-19 17:35
573 查看
事件
在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。
在发生其他类或对象关注的事情时,类或对象可通过事件通知它们。发送(或引发)事件的类称为“发行者”,接收(或处理)事件的类称为“订户”。
public partial class Form1 : Form { public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button1_Click(object sender, EventArgs e) { Car car = new Car(); car.OnOilWarning += new OilEventHandler(OilWarning); //关联事件 car.FillOil(5); car.Startup(); } public void OilWarning(object sender, OilEventArgs e) { MessageBox.Show("监测到了汽车油量异常,当前油量为:" + e.OilMass); } } //事件代理,可以理解为这个事件要传送什么内容 //事件参数我们使用自己写的 OilEventArgs public delegate void OilEventHandler(object sender, OilEventArgs e); //事件参数 public class OilEventArgs : System.EventArgs { private int _oilMass = 0; //油量 public int OilMass { get { return _oilMass; } } public OilEventArgs(int oilMass) { _oilMass = oilMass; } } //汽车类,包含事件成员 //当启动汽车时,如果油量少于某一个值,将会触发事件 public class Car { private int _oilMass = 0; //油量 public event OilEventHandler OnOilWarning; //定义事件成员,事件名称为 OnOilWarning //给汽车加油 public void FillOil(int oilMass) { _oilMass = oilMass; } //启动汽车 public void Startup() { if (_oilMass < 10) { OnOilWarning(this, new OilEventArgs(_oilMass)); } } }
相关文章推荐
- 理解C#中事件和委托的例子
- 理解C#中事件和委托的例子
- 不理解C#的枚举,委托和事件.请求高手给个通俗易懂的例子。就是有代码和对代码的详细解释。十分谢谢
- 帮助理解c#中委托+事件的一个例子
- 很有助于理解C#中事件和委托的例子
- C#的事件委托小例子
- 快速理解C#高级概念(二) 事件与委托的区别
- C# 关于委托和事件的妙文:通过一个例子详细介绍委托和事件的作用;Observer模式简介
- 比较C#的委托与C语言的函数指针,以及用流程图来理解C#中事件,发布与订阅的逻辑
- 对C#委托及事件委托的理解
- 关于c#中委托与事件的一些理解
- C#中,对委托和事件的理解
- 理解C#中的委托和事件
- C#委托,事件理解入门 (译稿)
- C# 如何理解委托事件(二)
- 简单易于理解的C#事件代理例子
- 对C#委托及事件委托的理解
- C#的事件(Event)和代理/委托(Delegate)例子
- 委托,事件订阅理解例子
- 对C#委托及事件委托的理解(转)