zoukankan      html  css  js  c++  java
  • 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;

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

    杂谈

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

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

  • 相关阅读:
    python中将汉字转换成拼音
    关于拉格朗日和内维尔插值算法的python实现
    hdoj1874 (优先队列+Dijkstra)
    hdoj1325 Is It A Tree?
    poj2299 二分思想
    nyoj89 汉诺塔(二)
    nyoj914Yougth的最大化(二分搜索 + 贪心)
    nyoj832 合并游戏(状态压缩DP)
    zoj2432 hdoj1423 最长公共上升子序列(LCIS)
    poj1308 Is It A Tree?(并查集)详解
  • 原文地址:https://www.cnblogs.com/datacool/p/2017datacool_EventArgs.html
Copyright © 2011-2022 走看看