少有人走的路

勇哥的工业自动化技术网站

C#在自定义事件里传递自定义数据,使用EventArgs的知识

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

正题

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

定义泛型类TEventArgs:

public class TEventArgs<T> : EventArgs
    {
         public TEventArgs(T t)
        {
            Data = t;
        }

        public T Data { get; set; } 
    }

定义数据传输类:

/// <summary>
    /// 工业相机OCR识别条码事件数据传输对象    /// </summary>
    public class ScanDataDto
    {        /// <summary>
        /// 编码        /// </summary>
        public string Code { get; set; }        /// <summary>
        /// 数据来源,设备键值        /// </summary>
        public string PortKey { get; set; }        /// <summary>
        /// 扫描时间        /// </summary>
        public DateTime ScanDateTime { get; set; }
    }

定义自定义事件:

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

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

image.png

杂谈

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

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


发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2025年12月    »
1234567
891011121314
15161718192021
22232425262728
293031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
文章归档
网站收藏
友情链接

Powered By Z-BlogPHP 1.7.3

Copyright www.skcircle.com Rights Reserved.

鄂ICP备18008319号


站长QQ:496103864 微信:abc496103864