8.事件 事件发布程序
2016-12-29 08:40
190 查看
本文固定连接:http://blog.csdn.net/u013108312/article/details/53923577
using System; namespace Wrox.ProCSharp.Delegates { public class CarInfoEventArgs : EventArgs { public CarInfoEventArgs(string car) { this.Car = car; } public string Car { get; private set; } } public class CarDealer { public event EventHandler<CarInfoEventArgs> NewCarInfo; public void NewCar(string car) { Console.WriteLine("CarDealer, new car {0}", car); RaiseNewCarInfo(car); } protected virtual void RaiseNewCarInfo(string car) { EventHandler<CarInfoEventArgs> newCarInfo = NewCarInfo; if (newCarInfo != null) { newCarInfo(this, new CarInfoEventArgs(car)); } } } }
using System; namespace Wrox.ProCSharp.Delegates { public class Consumer { private string name; public Consumer(string name) { this.name = name; } public void NewCarIsHere(object sender, CarInfoEventArgs e) { Console.WriteLine("{0}: car {1} is new", name, e.Car); } } }
namespace Wrox.ProCSharp.Delegates { class Program { static void Main() { var dealer = new CarDealer(); var michael = new Consumer("Michael"); dealer.NewCarInfo += michael.NewCarIsHere; dealer.NewCar("Ferrari"); var nick = new Consumer("Sebastian"); dealer.NewCarInfo += nick.NewCarIsHere; dealer.NewCar("Mercedes"); dealer.NewCarInfo -= michael.NewCarIsHere; dealer.NewCar("Red Bull Racing"); } } }
相关文章推荐
- PAT-乙级-1013
- vsftpd虚拟用户目录及权限分离
- php实现水印文字和缩略图的方法示例
- mysql-5.7.9安装
- NFS服务配置
- 为Unity编写C++ Native Plugin
- myrocks复制中断问题排查
- java并行计算Fork和Join的使用
- Weex开发之路(1):开发环境搭建
- 用mapreduce计算wordCount和手机流量统计程序运行过程
- recycleView 滑动删除Item,拖拽切换Item,你想了解的都在这儿
- 详解javascript表单的Ajax提交插件的使用
- 1001害死人不偿命的(3n+1)猜想
- 充实的一天
- HTTPS 指南
- MySQL存储引擎中的MyISAM和InnoDB区别详解
- 关于autocomplete的小例子
- 基于javascript的Form表单验证
- 带你开发一款给Apk中自动注入代码工具icodetools(完善篇)
- 部署tensorflow后导入出现如下错误解决办法