手机
当前位置:查字典教程网 >编程开发 >C#教程 >C#事件用法实例浅析
C#事件用法实例浅析
摘要:本文实例讲述了C#事件用法。分享给大家供大家参考。具体分析如下:EventHandler的定义如下publicdelegatevoidEve...

本文实例讲述了C#事件用法。分享给大家供大家参考。具体分析如下:

EventHandler<TEventArgs>的定义如下

public delegate void EventHandler<TEventArgs>(object sender,TEventArgs e) where TEventArgs:EventArgs

第一个参数必须是object类型(是一个对象,包含事件的发送者)

第二个参数是T类型(即泛型),定义了一个T的约束,它必须派生自基类EventArgs

CardInfoEventArgs 就派生自基类EventArgs

举例

#region 测试事件1 //EventArgs类 public class CardInfoEventArgs : EventArgs { public string Car { get; private set; } public CardInfoEventArgs(string car) { this.Car = car; } } //触发事件的类 public class CarDealer { public event EventHandler<CardInfoEventArgs> NewCardInfo; public void NewCar(string car) { Console.WriteLine("CarDealer,new car{0}", car); //在触发事件之前,需要检查委托NewCardInfo是否不为空。 //如果没有订阅处理程序,委托就是空 if (NewCardInfo != null) { NewCardInfo(this, new CardInfoEventArgs(car)); } } } //处理事件的类 public class Consumer { private string name; public Consumer(string name) { this.name = name; } //处理事件的方法 public void NewCarIsHere(object sender, CardInfoEventArgs e) { Console.WriteLine("{0}:car {1} is new", name, e.Car); } } #endregion private void button_测试事件1_Click(object sender, EventArgs e) { CarDealer dealer = new CarDealer(); Consumer michael = new Consumer("Michael"); dealer.NewCardInfo += michael.NewCarIsHere; //订阅事件 dealer.NewCar("宝马"); Consumer nick = new Consumer("Nick"); dealer.NewCardInfo += nick.NewCarIsHere; //订阅事件 dealer.NewCar("奔驰"); dealer.NewCardInfo -= michael.NewCarIsHere; //取消订阅事件 dealer.NewCar("奥迪"); }

测试结果截图

C#事件用法实例浅析1

希望本文所述对大家的C#程序设计有所帮助。

【C#事件用法实例浅析】相关文章:

C# SendKeys使用方法介绍

C#修改MAC地址类的实例

C#求解哈夫曼树,实例代码

C# Dictionary的使用实例代码

C#中timer类的用法总结

C#线程池用法详细介绍

C#解析json文件的实现代码

c#中var关键字用法浅谈

c#启动EXE文件的方法实例

C#生成注册码的实例代码

精品推荐
分类导航