EventArgs是包含事件数据的类的基类,用于传递事件的细节。今天分享的是使用泛型来约束EventArgs,在事件里传递自定义数据的例子。

由于这个关注点很小,直接上代码了。

定义泛型类TEventArgs:

  1. public class TEventArgs<T> : EventArgs
  2. {
  3. public TEventArgs(T t)
  4. {
  5. Data = t;
  6. }
  7. public T Data { get; set; }
  8. }

定义数据传输类:

  1. /// <summary>
  2. /// 工业相机OCR识别条码事件数据传输对象
  3. /// </summary>
  4. public class ScanDataDto
  5. {
  6. /// <summary>
  7. /// 编码
  8. /// </summary>
  9. public string Code { get; set; }
  10. /// <summary>
  11. /// 数据来源,设备键值
  12. /// </summary>
  13. public string PortKey { get; set; }
  14. /// <summary>
  15. /// 扫描时间
  16. /// </summary>
  17. public DateTime ScanDateTime { get; set; }
  18. }

定义自定义事件:

  1. /// <summary>
  2. /// 相机识别成功条码数据的事件
  3. /// </summary>
  4. public event Action<TEventArgs<ScanDataDto>> ScanDataReceiving;

订阅事件之后,获取数据传输对象的值:

今天又看了腾讯公开课,软谋教育“C#、.net架构师设计模式特训”。今天是看已经学过的观察者模式里面事件和委托的运用。

关于事件和委托,博客园波哥2010大白话系列之C#委托与事件讲解(序言)比较好懂,建议看看。这次Eleven老师又扩展了新的知识点。想到受益良多,不仅感慨,学了老师课程半年多了。但是一直没有好好把学到的知识运用到架构工作中去,深感遗憾。在这里帮老师打个广告吧。老师的课程真的不错,需要进阶的童鞋们请多关注。这里附上课程的链接:软谋教育“C#、.net架构师设计模式特训”因为工作还是比较忙没打算参加老师的VIP课程。主要还是以为架构师是养成的,呵呵。当有了架构设计能力,工作中BOSS还要看到你搭建的架构有亮点,有代替原有框架的价值才会给架构师这个职位。目前公司的首席架构师离开几年之后,后来者再也超越不了他。所以老架构就沿用了近十年。想做架构师很久了,现在看这个目标还需要继续努力,希望早一点把自己的很多想法融合到自己的框架当中。

 

版权声明:本文为datacool原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:http://www.cnblogs.com/datacool/p/2017datacool_EventArgs.html