架构师_程序员_码农网

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 30719|回复: 2

[资料] .net/c# 事件event详解

[复制链接]
发表于 2018-5-29 13:18:13 | 显示全部楼层 |阅读模式
C#中事件的定义:

类或者对象可以通过事件向其他类或者对象通知发生的相关事情。发送(或引起)事件的类称之为“发行者”,接收(或处理)事件的类称为“订户”。

事件具有以下特点:

  • 发行者确定时间引发事件,订户确定执行何种操作来响应该事件。
  • 一个事件可以有多个订户。一个订户可处理来自多个发行者的多个事件。
  • 没有订户的事件永远不会被调用。
  • 事件通常用于通知用户操作,例如,图形用户界面中的按钮单击或菜单选择操作。
  • 如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。要异步调用事件,请参见使用异步方式调用同步方法。
  • 可以利用事件同步线程。

event 关键字用于声明发布服务器类中的事件。

ms链接:https://docs.microsoft.com/zh-cn ... ence/keywords/event

QQ截图20180529130144.jpg



事件写法A和写法B其实是没有任何区别的!

可以参考:https://stackoverflow.com/questi ... enthandlereventargs

EventHandler<T>表示一个接受两个参数(object sender, TEventArgs e),返回类型为void的方法。其中,TEventArgs必须为派生自EventArgs类的类型。后一个参数就是储存事件所需要参数用的。

EventArgs是包含事件数据的类的基类,此类不包含事件数据,在事件引发时不向事件处理程序传递状态信息的事件会使用此类。如果事件处理程序需要状态信息,则应用程序必须从此类派生一个类来保存数据。

Volatile.Read  .net 4.0的不支持

QQ截图20180529131623.jpg
//
        // 摘要:
        //     从指定的字段中读取的对象引用。 在系统上需要它,将插入一个内存屏障,防止处理器对内存操作重新排序,如下所示 ︰ 如果执行读 / 写出现之后此方法在代码中,处理器不能将其移动此方法之前。
        //
        // 参数:
        //   location:
        //     要读取的字段。
        //
        // 类型参数:
        //   T:
        //     要读取的字段的类型。 这必须是引用类型,而不是值类型。
        //
        // 返回结果:
        //     对引用 T 读取。 此引用是由在计算机中,而不考虑处理器的数目或处理器缓存的状态的任何处理器写入的最新。
        [ReliabilityContract(Consistency.WillNotCorruptState, Cer.Success)]
        [SecuritySafeCritical]
        [TargetedPatchingOptOut("Performance critical to inline across NGen image boundaries")]
        public static T Read<T>(ref T location) where T : class;






上一篇:安卓手机QQ版出现骂人“彩蛋”
下一篇:c# 对OpenFileDialog读取文件的封装
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2020-3-22 17:11:32 | 显示全部楼层
.net 4.0 写法
定义事件参数


定义事件



触发事件



码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
 楼主| 发表于 2021-3-17 11:21:40 | 显示全部楼层
ASP.NET Core 使用 MediatR 中介者模式
https://www.itsvse.com/thread-9272-1-1.html
码农网,只发表在实践过程中,遇到的技术难题,不误导他人。
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

免责声明:
码农网所发布的一切软件、编程资料或者文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。

Mail To:help@itsvse.com

QQ|手机版|小黑屋|架构师 ( 鲁ICP备14021824号-2 )|网站地图

GMT+8, 2024-3-29 13:47

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表