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

用户体验做的好的网站com域名是什么

用户体验做的好的网站,com域名是什么,电子版个人简历模板下载,冷门却好听的公司名称事件模型的5个组成部分 事件拥有者(event source)(类对象)(有些书将其称为事件发布者) 事件成员(event)(事件拥有者的成员)(事件成员就是事件本身…

事件模型的5个组成部分
事件拥有者(event source)(类对象)(有些书将其称为事件发布者)
事件成员(event)(事件拥有者的成员)(事件成员就是事件本身,事件不会主动发生,其只会在事件拥有者的内部逻辑的触发下发生。)
事件响应者(event subscriber)(类对象)(有些书将其称为事件订阅者)
事件处理器(event handler)(事件的响应者的成员)(根据拿到的事件参数/信息对事件进行处理)
事件订阅(委托类型)

举个栗子:妈妈喊儿子回家吃饭,儿子听到立马跑回家。

在上面这个例子中,事件拥有者是妈妈(Mother),事件成员是喊(Say),事件响应者是儿子(Son),事件处理是跑步回家(Gohome)

接下来我们尝试去写这个过程

using System;
using System.Collections.Generic;
using System.Linq;
using System.Runtime.InteropServices;
using System.Text;
using System.Threading;
using System.Threading.Tasks;namespace ConsoleApp5event
{//事件拥有者(event source)(类对象)(有些书将其称为事件发布者)//事件成员(event)(事件拥有者的成员)(事件成员就是事件本身,事件不会主动发生,其只会在事件拥有者的内部逻辑的触发下发生。)//事件响应者(event subscriber)(类对象)(有些书将其称为事件订阅者)//事件处理器(event handler)(事件的响应者的成员)(根据拿到的事件参数/信息对事件进行处理)//事件订阅(委托类型 delegate)//举个栗子1:“裁判员开枪,运动员开始跑步。”//1.1事件拥有者是裁判员,//1.2事件成员是开枪,//1.3事件响应者是运动员,//1.4事件处理是开始跑步。//举个栗子2:这是WinForm编程中常用的一种方式,比如在一个窗体中,存在一个文本框和按钮,现在要通过点击按钮让文本框上显示出文字“Hello World”。//2.1发生的事件是:鼠标点击;//2.2事件拥有者是:按钮(Button),鼠标点击的是它,它是窗体对象的一个字段成员;//2.3事件响应者是窗体对象;//2.4事件处理是:窗体对象让自己的字段成员文本框(TextBox)显示出文字“Hello World”。//从发生到响应的5个动作:①事件拥有者拥有一个事件→②事件响应者订阅了这个事件→③事件拥有者触发了事件→④事件响应者会被依次通知到(按照订阅的顺序)→⑤事件响应者根据拿到的事件参数对事件进行处理//下面的示例是:你妈妈喊“回家吃饭”,你(儿子)跑步回家。//事件拥有者是妈妈,//事件成员是喊话,//事件响应者是儿子,//事件处理是跑步回家。//在声明事件之前,需要先声明一个委托类型来作为约束,即事件订阅,其约束了事件(喊话)能够发送什么事件参数给事件响应者(儿子),以及当事件响应者(儿子)的事件处理器(跑步回家)符合规定时(即符合委托类型指定的签名和返回值类型),事件订阅要将其保存起来(即委托字段引用方法)。根据命名规范,该委托应该命名为“事件名+EventHandler”。//可以将事件标记为public、private、protected、internal、protected internal 或 private protected。 这些访问修饰符定义该类的用户访问该事件的方式。 internal class Program{static void Main(string[] args){Mother mother = new Mother();//事件的拥有者Son son = new Son();//事件的相应者mother.Say += son.Gohome; //事件Say,事件处理器gohome,事件订阅+= 也就是只要妈妈说话了,儿子就时时刻刻接收妈妈说的话mother.SayingProcess(); //触发事件,模拟妈妈喊儿子回家过程Console.ReadKey();}}//用于传递事件参数(事件信息)的类,该例子中主要用于将妈妈的话传递给儿子public class SayEventArgs : EventArgs{public String sentence { get; set; } //说了什么话}//声明委托类型(事件订阅)//第1个参数为事件拥有者(妈妈),第2个参数是用来存储喊儿子回家的相关信息(事件参数) public delegate void SayEventHandler(Mother mother, SayEventArgs e);//妈妈类:事件拥有者public class Mother{//根据前面声明的委托类型来创建一个委托类型字段,用来触发事件处理器(儿子回家)private SayEventHandler sayEventHandler;//声明事件://event为事件关键字,SayEventHandler表示用此委托来约束该事件public event SayEventHandler Say{//添加事件处理器add{sayEventHandler += value;}//删除事件处理器remove{sayEventHandler -= value;}}//下面的Say就相当于上面的Say(事件和儿子的动作进行绑定)和SayEventArgs(事件传输参数,用于将妈妈的话传给儿子)//public void Say(string sentence)//{//    Console.WriteLine("妈妈说:"+sentence);//}//模拟妈妈喊儿子的过程:public void SayingProcess(){Console.WriteLine("输入回车后开始模拟:妈妈做好饭喊儿子回家");Console.ReadLine();Console.WriteLine("妈妈已经做好饭了");Thread.Sleep(1000);Console.WriteLine("妈妈走向窗户边");Thread.Sleep(1000);Console.WriteLine("妈妈准备喊话");Thread.Sleep(1000);//触发事件:if (sayEventHandler != null) //若不存在任何事件处理器则无法触发事件{//准备好事件参数(即准备好妈妈想说的话)SayEventArgs e = new SayEventArgs();e.sentence = "儿子回家吃饭了";Console.WriteLine("妈妈说:“"+e.sentence+"”");Thread.Sleep(1000);//调用事件处理器(就是)sayEventHandler(this, e);e.sentence = "儿子买点盐去,家里没有盐了";Console.WriteLine("妈妈说:“" + e.sentence + "”");Thread.Sleep(1000);sayEventHandler(this, e);}}}//儿子类:事件响应者public class Son{//想儿子要回家的话,首先得有妈妈约束(所以第一个参数是事件的拥有者),其次是妈妈做了什么(喊吃饭,所以第二个参数是事件)才能让儿子回家//此处的参数必须与SayEventHandler一样public void Gohome(Mother mother, SayEventArgs e){Thread.Sleep(1000);Console.WriteLine("儿子接收到妈妈的话:"+e.sentence);Thread.Sleep(1000);if (e.sentence.Contains("回家")){Console.WriteLine("儿子说:“好的,妈妈,我马上回家吃饭”");}else {Console.WriteLine("儿子说:“妈妈,自己去买呗,我还想在外面玩会”");} }}}

运行结果如下 

参考文献

event - C# 参考 - C# | Microsoft Learn

C# 事件(event)_c# event_熊思宇的博客-CSDN博客

C#中的事件(event)_c# event_香芋派丶的博客-CSDN博客

http://www.15wanjia.com/news/191754.html

相关文章:

  • 网站重复页面wordpress教学模板
  • seddog站长之家下载企查查企业查询
  • 南桥做网站哪些网站可以接生意做
  • 网站怎么做下拉刷新做视频上传可以赚钱的网站
  • 市场营销案例分析重庆官网seo技术厂家
  • 建设网站公司哪里好相关的热搜问题重庆美邦 网站建设
  • 建德做网站分享类网站源码
  • 阿里云网站模板 解析wordpress网站顶部加横幅
  • 网站品牌打造廊坊网站建设多少钱
  • 广元网站设计南京有哪些做网站的公司
  • 企业网站 域名注册有哪些建设网站的
  • 秀洲区住房和城乡建设局网站seo关键字优化教程
  • 备案系统网站建设银行网站能不能注销卡
  • 推进门户网站建设方案品牌建设和品牌打造方案
  • 福州建网站网络营销推广师
  • 上海市网站设计如何快速推广一个app
  • 品牌咖啡主题网页界面设计整站快速排名优化
  • 章贡网站建设互联网营销培训课程
  • 做课内教学网站百度网盘搜索引擎入口在哪里
  • 北京网页设计公司兴田德润团队网站建设网站优化
  • 奢侈品网站排名seo查询什么意思
  • 网站怎么备案花生棒做网站
  • dede小说网站模板下载建网站备案需要的材料
  • 用python做的大型网站北京交通管制信息网站
  • 如何建立竞价网站平台网站建设步骤
  • 啥是深圳网站建设网架
  • dede怎么做视频网站网站初期推广方案
  • 深圳建网站兴田德润专业服务器win2003安装wordpress
  • 成都系统网站建设查国外企业用什么软件
  • 上海招聘用的最多的网站安居客西安网页版