.NET漫游指南-009-泛型事件委托
来源:互联网 发布:易语言ce修改器源码 编辑:程序博客网 时间:2024/05/16 11:54
这篇文章主要讲述泛型事件委托。
参考网址:https://msdn.microsoft.com/en-us/library/system.eventhandler(v=vs.110).aspx#
源码地址:http://download.csdn.net/download/geshicuowu/10003963
在之前的内容中分别讲述了委托,事件,泛型。但是在项目开发中一般都是结合使用的。下面这个例子就是简要讲述这三者如何结合使用。
场景:模拟股票的行情推送,交易员订阅行情之后,行情发生变化,交易员就会收到变化的行情。
1:定义一个泛型的事件委托参数GenericEventArgs继承自EventArgs用于传递事件的相关数据信息。这里设置为泛型的优势是,可以在整个项目中重用该参数,降低了冗余。
public class GenericEventArgs<T> : EventArgs { public GenericEventArgs(T value) { this.Value = value; } public T Value { get; set; } }
2:定义一个数据对象StockInfor,用来作为事件信息的传递参数。
public class StockInfor { double stockPrice; public double StockPrice { set { stockPrice = value; } get { return stockPrice; } } int stockRange; public int StockRange { set { stockRange = value; } get { return stockRange; } } }
3:定义一个交易员对象,用来作为订阅者。其中有个方法是GetStockInfor,用于获取事件的信息。
class Trader { public string Name { set; get; } public void GetStockInfor(object sender ,GenericEventArgs<StockInfor> e) { //拆箱 var stockInfor = e.Value as StockInfor; System.Console.WriteLine(string.Format("{0} get the stock information price:{1} range:{2} ", Name, stockInfor.StockPrice, stockInfor.StockRange)); } }
以上准备工作完成了,接下来就是实例化事件源和订阅者,然后对事件委托进行订阅,最后启动事件源。就会看见当股票信息发生变化时,就会通过事件委托EventHandle来告知交易员。
class Program { static void Main(string[] args) { Stock stockInfor = new Stock(); Trader Jone = new Trader(); Jone.Name = "Jone"; Trader Tom = new Trader(); Tom.Name = "Tom"; //进行事件委托 stockInfor.stockUpdate += Jone.GetStockInfor; stockInfor.stockUpdate += Tom.GetStockInfor; stockInfor.Start(); Console.ReadKey(); } }
运行效果如下
阅读全文
0 0
- .NET漫游指南-009-泛型事件委托
- .NET漫游指南-008-泛型,装箱,泛型委托
- .NET漫游指南-002-委托
- .NET漫游指南-003-事件
- .NET漫游指南-011-.NET Framework中处理和引发事件
- .NET漫游指南-010-WPF中的KeyDown和PreviewKeyDown事件的区别和用法
- asp.net委托事件
- .net 委托和事件
- .Net事件与委托
- NET委托,事件
- .net事件和委托
- .NET 委托与事件
- .NET 委托和事件
- .net 委托和事件
- .NET漫游指南-005-INotifyProperChanged和List<>,ObservableCollection<>使用
- .NET漫游指南-006-语言集成查询LINQ
- .NET漫游指南-007-WPF中多线程调用界面控件
- .Net中的事件与委托
- apache ab压力测试报错
- 服务计算作业1——配置环境
- Windows 安装配置sonarqube
- JSON对象与字符串之间的相互转换
- Matlab随机生成元素和为K的向量
- .NET漫游指南-009-泛型事件委托
- 怎么实时监控手机cpu-----使用性能监视器PerfMon
- XDOJ 1233
- 矩阵对角之间的走法常见问题之动态规划
- MINI2440裸机实验之LCD
- JavaWeb监控框架-JavaMelody
- 内容提供者——添加内容观察者
- Coursra-MachineLearning 第二次作业总结
- OpenCV-利用cvPtr2D存取矩阵元素和用cvGetReal2D取矩阵元素