当前位置: 首页 > news >正文

能够做冶金工程毕业设计的网站惠州网站制作案例

能够做冶金工程毕业设计的网站,惠州网站制作案例,大连模板网站制作公司,数字营销案例100例前言#xff1a; 观测者模型的基本理念#xff0c;就是#xff0c;我有一个公共的事件#xff0c;定义好他的事件的触发、数据接口。然后#xff0c;通过增加订阅者#xff08;实例#xff09;来订阅这个事件的#xff0c;或者说观察这个事件。如果事件发生#xff0…前言 观测者模型的基本理念就是我有一个公共的事件定义好他的事件的触发、数据接口。然后通过增加订阅者实例来订阅这个事件的或者说观察这个事件。如果事件发生订阅了事件或订阅了观察的类就执行这个时间的方法触发的执行。 这种方式的好处就是解耦了生产者事件发生和消费者事件处理的绑定关系注册观察了再执行否则不执行。 1 观察者发布-订阅模式的构建 1.1 EventHandler系统定义的事件委托Handler,也就是处理事件的方法 C# Formworks 定义的事件定义在 System.EventHandler 中的委托包括事件发送者和发送的事件数据对象两个参数。 2 定义数据事件提供者类 定义了一个名为 DataEventProvider 的公共静态类 2.1.1 定义事件 DataChanged和事件的句柄接口  数据事件提供者首先要有一个事件这里就是DataChanged。 public static class DataEventProvider{public static event EventHandlerDataChangedEventArgs DataChanged;public static void OnDataChanged(IFrameOut newFrame){DataChanged?.Invoke(null, new DataChangedEventArgs(newFrame));}} 有了事件DataChanged同时还提供一个事件的接口也就是你要通知订阅的人发生了声明然后给粗发生的事情的证据数据 也就是出事了然后有这么一堆数据来说明和准备处理、 EventArgs 就是来说明什么事件的但他默认的定义是空的就等着你构建事件的时候自己去定义需要哪些证据。 在我们的案例里面我们就把EventArgs给泛型也就是说明白了那么通过EventHandlerDataChangedEventArgs把接口泛型到DataChangedEventArgs的定义里面如下 public class DataChangedEventArgs : EventArgs{public IFrameOut NewFrame { get; } //拿到数据public DataChangedEventArgs(IFrameOut newFrame){NewFrame newFrame; // 给到事件订阅者}} 在DataChangedEventArgs里面我们清楚的定义了一个IFrame的图像的处理数据拿到数据同时把数据传递给事件订阅者作为事件要处理的接口。 【案】        public static event EventHandlerDataChangedEventArgs DataChanged; DataChanged 是一个公共的静态事件。 他的定义详细如下 1 public static类级别的公共静态变量 2 event类型:是一种特殊的成员允许对象订阅和响应由其他对象发出的信号或消息。 3 为 EventHandlerDataChangedEventArgs。 EventHandler 第一节已经说了DataChangedEventArgs是EventHandler的泛型版本表示事件处理方法EventHandler将接受DataChangedEventArgs泛型定义的参数这里我们的DataChangedEventArgs是我们自己定义的一个类。派生于EventArgs因此他也依旧包括EventHandler已经有的相关的数据。 总之我们的定义了一个 公共的静态事件类型为 EventHandlerDataChangedEventArgs。这意味着它可以与任何符合 EventHandler 委托定义的方法关联并且这些方法将接收一个 DataChangedEventArgs 类型的参数。 2.1.2  定义事件的方法 OnDataChanged  【案】        public static void OnDataChanged(IFrameOut newFrame) OnDataChanged 是一个静态方法 这里接受了一个IFrameOut的参数。 DataChanged?.Invoke(null, new DataChangedEventArgs(newFrame)); 这里DataChanged为之前定义的事件名 1 条件运算符 C# 6引入的null条件运算符。它允许你在尝试调用对象的成员之前检查对象这里为事件源对象或者观察者是否为null。如果对象不是null就执行成员访问如果是null则不执行任何操作并且表达式的结果为null。 这样做的另外一个好处是线程安全。 2 Invoke 方法 Invoke 是 EventHandler 委托的实例方法用于触发事件。它接受两个参数第一个是事件源通常是一个对象实例第二个是包含事件数据的 EventArgs 类型的实例。我们之前定义的时候知道DataChangedEventArgs泛型继承了之前EventHandler 有的两个基本数据。在这个例子中Invoke 被用来触发 DataChanged 事件通知所有订阅者发生了数据变化。 3 观察者发布-订阅模式的使用  3.1定义一个观测者事件 例如我们在Form1订阅了这个事件 private void OnDataChanged(object sender, DataChangedEventArgs e) {// 拿到事件的参数数据IFrameOut frameOut e.NewFrame;// 后续进行处理} 3.2 注册一个观测者事件 事件的注册或者观测者通过将一个事件处理方法加到事件定义里面来注册 DataEventProvider.DataChanged OnDataChanged;3.3 触发一个事件发生 DataEventProvider.OnDataChanged(frameOut);3.4 取消观察 DataEventProvider.DataChanged - OnDataChanged;
http://www.hkea.cn/news/14432185/

相关文章:

  • 自己电脑做网站访问快吗窦各庄网站建设
  • 一流的聊城做网站公司用vs2013网站开发
  • 如何修改网站关键词手机vi设计公司
  • 建设收费网站北京公司如何做网站
  • 网站免费模板制作织梦个人网站模版
  • 如何选择网站模板网络营销服务有哪些
  • 深圳网站设计精选刻网站建设公司加优化
  • 网站开发php js滨海做网站哪家公司好
  • 安徽金开建设集团网站兴宁市网站建设
  • 17网做网站百度seo自动优化
  • 响应式网站图片代码凡科可以做社交网站吗
  • 关于内网站建设的请示wordpress php7不兼容
  • 手机网站前端开发布局技巧宁乡网站建设公司
  • 兰州网站建设|兰州网站制作|兰州网站设计公司|兰州网络公司前端开发和后端开发哪个赚钱
  • 珠海网站建设怎样手机app网站模板
  • 可以讨论网站建设的论坛为网站制定推广计划
  • 企业网站备案网地址茂名网站制作计划
  • 网站开发提问织梦 电影网站 模板
  • 北京网站建设可选兴田德润招工做的网站
  • 网站建设销售话术900句网站模版怎么做
  • 做精神科网站wordpress新建网页插件
  • 深圳网站建设工资wordpress 伪静态化
  • 高新网站建设哪家好自己做考试题目网站
  • 简单详细搭建网站教程视频教程系统开发需求文档
  • 河北优化网站获客qqwordpress 信息港
  • 柳州建设局网站企业管理咨询
  • app需要网站有哪些组建网站需多少钱
  • 免费推广网站入口2023燕网页生成微信小程序
  • ui参考网站手机网站一年维护费
  • 公司建一个网站多少费用自己做网站地址