深圳网站设计比较好的公司上海市住房和城乡建设厅

diannao/2026/1/25 9:10:20/文章来源:
深圳网站设计比较好的公司,上海市住房和城乡建设厅,it从零开始学大概要学多久,网站设计制作系统哪个好在所有关于C#事件机制的介绍中#xff0c;我更倾向于发布者/订阅者#xff08;Publisher/Subscriber#xff09;这种描述。理解事件机制并不是一件容易的事情#xff0c;它所涉及的思想值得我们好好去研究。 本文资源来自《C#与.NET技术平台实战演练》——中国青年出版社 …在所有关于C#事件机制的介绍中我更倾向于发布者/订阅者Publisher/Subscriber这种描述。理解事件机制并不是一件容易的事情它所涉及的思想值得我们好好去研究。 本文资源来自《C#与.NET技术平台实战演练》——中国青年出版社 谈到事件我们涉及到两个角色事件发布者Publisher和事件订阅者Scriber也可以说是事件发送者Sender和事件接收者Receiver的关系。举个例子来说市面上目前有许多杂志杂志的种类也很多。而我只对其中的某些感兴趣那么我就可以向杂志发行商提出订阅。之后每当杂志发行时我就会收到我在杂志发行商那儿订阅的杂志。在这个关系中杂志发行商就相当于事件发行者而我就是事件订阅者。每当杂志发行时就触发了一个发行事件。 用面向对象的语言解释这两者的意义如下 事件发行者Publisher 它是一个对象且会维护自身的状态信息。每当状态信息发生变动时便触发一个事件并通知所有的事件订阅者。对于杂志发行商来说每本杂志都有自己的信息在里面当杂志发行时我要通知订阅该杂志的人杂志已经发行啦请注意查收 事件接收者Receiver 这个对象要注册它感兴趣的对象也就是订阅它自己喜欢的杂志啦。另外这个对象通常要提供一个事件处理方法在事件发行者触发一个事件后会自动执行这个方法。对于上面所举的例子来说也就是我收到杂志后要做什么事情比如你可以满世界地大喊我收到杂志啦也可以将杂志收藏起来慢慢欣赏具体怎么实现完全取决你自己的喜好。 以下是.NET事件处理机制的模型 下面给一个简单的例子用以阐述事件的思想 1using System;  2using System.Collections.Generic;  3using System.Text;  4  5namespace EventDemo  6{  7       public delegate void SalaryCompute();        //声明一个代理类  8  9       public class Employee 10       { 11              public event SalaryCompute OnSalaryCompute;         //定义事件将其与代理绑定 12 13              public virtual void FireEvent()       //触发事件的方法 14              { 15                     if (OnSalaryCompute ! null) 16                     { 17                            OnSalaryCompute();      //触发事件 18                     } 19              } 20       } 21 22       public class HumanResource 23       { 24              public void SalaryHandler()          //事件处理函数 25              { 26                     Console.WriteLine(Salary);     //只是打印一行字而已 27              } 28 29              public static void Main() 30              { 31                     Employee ep  new Employee(); 32                     HumanResource hr  new HumanResource(); 33                     ep.OnSalaryComputenew SalaryCompute(hr.SalaryHandler);       //注册 34                     ep.FireEvent();        //触发事件 35                     Console.Read(); 36              } 37       } 38} 39 在这个例子中Employee类相当于一个事件发布者Publisher它定义了事件的相关信息包括定义了一个事件用于计算薪水OnSalaryCompute以及一个触发事件的函数FireEvent为简单起见本例没有加上事件参数。与之相对应HumanResource类则相当于一个事件订阅者Subscriber它定义了一个事件处理函数SalaryHandler并用将其与事件联系起来从而使事件触发的时候能够调用我这个方法在本例中也就是打印一行字啦。值得注意的一点是事件处理函数的方法签名要与代理的方法签名相同这是非常重要的一点。 下面将这个例子改造一下事件参数信息用以完善事件机制。1using System;  2using System.Collections.Generic;  3using System.Text;  4using System.Threading;  5  6namespace EventDemo  7{  8       public delegate void SalaryCompute(object sender,MyEventArgs e);        //声明一个代理类  9 10       public class Employee 11       { 12              public event SalaryCompute OnSalaryCompute;         //定义事件将其与代理绑定 13 14              public virtual void FireEvent(MyEventArgs e)       //触发事件的方法 15              { 16                     if (OnSalaryCompute ! null) 17                     { 18                            OnSalaryCompute(this,e);      //触发事件 19                     } 20              } 21       } 22 23       public class MyEventArgs : EventArgs         //定义事件参数类 24       { 25              public readonly double _salary; 26              public MyEventArgs(double salary) 27              { 28                     this._salary  salary; 29              } 30       } 31 32       public class HumanResource 33       { 34              public void SalaryHandler(object sender,MyEventArgs e)          //事件处理函数其签名应与代理签名相同 35              { 36                     Console.WriteLine(Salary is {0},e._salary);     //只是打印一行字而已 37              } 38 39              public static void Main() 40              { 41                     Employee ep  new Employee(); 42                     HumanResource hr  new HumanResource(); 43                     MyEventArgs e  new MyEventArgs(123.40); 44                     ep.OnSalaryComputenew SalaryCompute(hr.SalaryHandler);       //注册 45                     for (; ; ) 46                     { 47                            Thread.Sleep(1000);      //让程序“睡”一秒 48                            ep.FireEvent(e);        //触发事件 49                     } 50                     //Console.Read(); 51              } 52       } 53} 54

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88369.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站建设流程分几步个人互动网站

http://blog.csdn.net/chenjinyu_tang/article/details/8136841 好久没有学习python了,应为工作的需要,再次拾起python,唤起记忆。 当函数的参数不确定时,可以使用*args 和**kwargs,*args 没有key值,**kwar…

长沙品牌网站建设实力强去哪个网站可以接单做ps等等

C# 9 新特性 —— 补充篇Intro前面我们分别介绍了一些 C# 9 中的新特性,还有一些我觉得需要了解一下的新特性,写一篇作为补充。Top-Level Statements在以往的代码里,一个应用程序必须要有 Main 方法才能运行,从 C# 9 开始&#xf…

如何建网站模板小型网站建设方案

我想创建一个具有95%“精确”置信椭圆的二元正态分布的散点图.library(mvtnorm)library(ggplot2)set.seed(1)n c95 rho Sigma 我从双变量法线生成了1000个观测值,平均值为零,方差西格玛x z for(i in 1:n){z[i] p95[i] }我们可以使用stat_ellipse轻松地在生成数据的散…

门户网站建设的意义latex写wordpress

Java中线程的状态分为6种: 1.初始(NEW):新创建了一个线程对象,但还没有调用start()方法。 2.运行(RUNNABLE):Java线程中将就绪(READY)和运行中(RUNNING)两种状态笼统的称为“运行”…

网站建设拿什么框架海曙区做网站

解决数据库中的中文数据在页面显示乱码的问题 在连接的$connectionInfo中设置"CharacterSet" > "UTF-8",指定编码方式即可 $connectionInfo array("UID">$uid, "PWD">$pwd, "Database">$database…

个人微信公众号怎么做微网站网站建设程序的步骤过程

15. 小部件Menu “下拉菜单”是一种流行的方式 为用户提供多种选择,但占用 应用程序表面的最小空间,当 用户没有做出选择。 菜单按钮是 始终显示在应用程序上。 菜单是选项列表 仅在用户单击 菜单按钮。 要选择一个选项,用户可以将鼠标从 菜…

豪圣建设项目管理网站山东网站建设优化

接口测试 什么是接口 接口是两个独立部件共享信息的边界,测试中常说的接口大部分是web接口。web接口是遵循了http或者https协议的URL。 数据的流转过程 由客户端通过接口将数据发送给服务器。服务器收到数据之后,取出想要的数据,拼装成一…

哪些网站做装修wordpress下载防止盗链

2021牛客暑期多校训练营5 题号题目知识点AAway from CollegeBBoxes概率CCheating and StealingDDouble Strings线性dpEEert EsiwtibFFinding PointsGGreater Integer, Better LCMHHolding Two签到IInterval QueriesJJewels最小权匹配KKing of Range尺取法

php下载站源码长沙专业做网络的公司

C使用ffpython嵌入和扩展python(python2和python3)摘要:在服务器编程中,经常会用到python脚本技术。Python是最流行的脚本之一,并且python拥有定义良好的C API接口,同时又有丰富的文档,与C结合非常的适合。…

做食品那些网站好网站如何做的看起来高大上

创建一个简单的iOS天气应用程序涉及到多个步骤,包括设置项目、编写代码和使用外部API。由于篇幅限制,我将提供一个基础的示例,这个例子会展示如何创建一个简单的UI,获取用户的当前位置,并从OpenWeatherMap API获取天气…

网站源码在线查询北京网站搭建费用

在学习和使用python的过程中,少不了要与python idle打交道。但使用python idle都会遇到一个常见而又懊恼的问题——要怎么清屏?我在stackoverflow看到这样两种答案:1.在shell中输入1 import os 2 os.system(cls) 这种方法只能在windows系统中cmd模式下的…

网站项目功能需求清单滑县网站建设策划

今日学习的文章链接和视频链接 leetcode题目地址:383. 赎金信 代码随想录题解地址:代码随想录 题目简介 给你两个字符串:ransomNote 和 magazine ,判断 ransomNote 能不能由 magazine 里面的字符构成。 如果可以,返…

做淘宝客网站有什么服务器上哪儿找做网站

今天给大家分享一个微软官方的好东西:Channel。前言今天给大家分享一个微软官方的生产者/消费者方案的特性解决:Channel。Channel在System.Threading.Channels命名空间下,Core 2.1使用时,需要从Nuget上安装。% dotnet add package…

中国石油天然气第六建设公司网站a5站长网网站交易

文章目录 为不同的场景设计合适的缓存策略1. 缓存是什么2. 缓存的场景3. 缓存的策略4. 缓存位置5. 缓存实现的要点6. 注意问题7. 使用的组件8. 内存缓存和分布式缓存区别 总结 为不同的场景设计合适的缓存策略 1. 缓存是什么 缓存是计算结果的“临时”存储和重复使用缓存本质…

网站设计需求方案wordpress注册新用户

那得从很久很久以前说起了,记得那个时候... 懵懂的记得从前有个叫委托的东西是那么的高深难懂。 委托的使用 例一: 什么是委托? 个人理解:用来传递方法的类型。(用来传递数字的类型有int、float、double,用…

淮南网站建设服务中国建设银行太原招聘信息网站

JAVA中断线程的方法 Thread.stop, Thread.suspend, Thread.resume 和Runtime.runFinalizersOnExit 这些终止线程运行的方法已经被废弃,使用它们是极端不安全的! 现在,如果你要安全有效地终止一个线程,应该采用以下这些方法&a…

广告公司企业网站模板优化 导航网站

目录 背景 技术简介 系统简介 界面预览 背景 随着互联网的广泛渗透和进步,基于网络技术的KTV点歌系统迅速壮大,其发展始终围绕用户的实际需求展开。通过深入洞察用户的需求,开发出高度定制的管理平台,利用网络的便捷性对系统…

杭州网站建设seo怎么查网站哪里做的

我们公司在用nginx的userid模块作为简单的用户请求追踪使用。这个模块其实并不能真正记录用户的请求状态,只能作为一个辅助使用。但是在一些场景下会有一些异常。下面我们简单介绍一下这个模块到底做了什么。 userid 模块简介 官网说明文档 ngx_http_userid_modul…

龙华区网站建设政元软件做网站

文章目录一、JDBC下载与导入二、获取连接三、PreparedStatement类操作数据库四、操作BLOB类型字段(图片视频等)五、Batch批量插入🙆🏻‍♀️🙆🏻‍♀️文末最新版jdbc jar包下载 🙆&#x1f3fb…

网站备案号 如何添加目前网站开发应用到的技术有什么

JVM(Java虚拟机)是Java平台的核心组件之一,它是一个虚拟计算机,可以执行Java字节码文件。JVM解释并执行Java字节码,并提供了其他功能,如内存管理和垃圾回收。 JVM的基本功能包括以下几个方面: …