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

做网站学什么软件chrome浏览器官网入口

做网站学什么软件,chrome浏览器官网入口,公司网站开发费用济南兴田德润o评价,做网站公司赚不赚钱一、初步了解事件 定义:单词 Event ,译为“事件” 《牛津词典》中的解释是“a thing that happens,especially something important”通顺的解释就是“能够发生的什么事情” 角色: 使对象或类具备通知能力的成员 (中译&#x…

一、初步了解事件

定义:单词 Event ,译为“事件”

  • 《牛津词典》中的解释是“a thing that happens,especially something important”
  • 通顺的解释就是“能够发生的什么事情”

角色: 使对象或类具备通知能力的成员

  • (中译)事件(Event)是一种使对象或类能够提供通知的成员
  • (原文)An event is a member that enables an object or class to provide notifications.
  • “对象O拥有一个事件E”想表达的思想是:当事件E发生的时候,O有能力通知别的对象

使用: 用于对象或类间的动作协调与信息传递(消息传递)
原理: 事件模型(event model)中的两个“5

  • ”发生->响应“中的5个部分——闹钟响了你起床、孩子饿了你做饭…这里隐含着”订阅“关系(第5元素,比如闹钟、响了、你、起床,是4个部分;如果没有订阅关系,就没有具备通知能力)
  • ”发生->响应“中的5个动作——(1)我有一个事件->(2)一个人或者一群人关心我的这个事件->(3)我的这个事件发生了->(4)关心这个事件的人会被依次通知到->(5)被通知到的人根据拿到的事件信息(又称”事件数据“、”事件参数“、”通知“)对事件进行响应(又称”处理事件“)。

提示

  • 事件多用于桌面、手机等开发的客户端编程,因为这些程序经常是用户通过事件来”驱动“的
  • 各种编程语言对这个机制的实现方法不尽相同
  • Java 语言里没有事件这种成员,也没有委托这种数据类型。Java 的”事件“是使用接口来实现的
  • MVC、MVP、MVVM 等模式,是事件模式更高级、更有效的”玩法“
  • 日常开发的时候,使用已有事件的机会比较多,自己声明事件的机会比较少,所以先学使用

事件的功能 = 通知 + 可选的事件参数(即详细信息)

事件术语:

  • 事件的订阅者
  • 事件消息的接收者
  • 事件的响应者
  • 事件的处理者
  • 被事件所通知的对象
  • 事件信息、事件消息、事件数据,统一称做事件参数
  • 事件模式,本身也是设计模式

事件模型的五个组成部分

  • 事件的拥有者(event source,对象)
  • 事件成员(event ,成员):用来通知的工具,比如不按下点击click事件,就不会发生事件
  • 事件的响应者(event subscriber,对象)
  • 事件处理器(event handler,成员)——本质上是一个回调方法
  • 事件订阅——把事件处理器与事件关联在一起,本质上是一种以委托类型为基础的”约定“

请添加图片描述

注意:

  • 事件处理器是方法成员
  • 挂接事件处理器的时候,可以使用委托实例,也可以直接使用方法名,这是个”语法糖“
  • 事件处理器对事件的订阅不是随意的,匹配与否由声明事件时所使用的委托类型来检测
  • 事件可以同步调用也可以是异步调用
    例子:
    MouseEvent:事件
    mousePressed:事件处理器

1)

请添加图片描述

 class Program{static void Main(string[] args){Timer timer = new Timer();timer.Interval = 1000;Boy boy = new Boy();Girl girl = new Girl();//timer是拥有者,+= 是订阅,Elapsed是事件,boy是事件响应者,Action是事件处理器//一个事件同时有两个事件处理器的情况timer.Elapsed += boy.Action;timer.Elapsed += girl.Action;timer.Start();Console.ReadKey();}}class Boy{internal void Action(object sender, ElapsedEventArgs e){Console.WriteLine("Jump!");}}class Girl{internal void Action(object sender, ElapsedEventArgs e){Console.WriteLine("Sing!");}}

2)

请添加图片描述

    class Program{static void Main(string[] args){Form form = new Form();Controller controller = new Controller(form);form.ShowDialog();Console.ReadKey();}}class Controller{private Form form;public Controller(Form form){if(form != null){this.form = form;//form是事件拥有者,Click是事件,Controller是事件响应者,FromClicked是事件处理器,+=订阅this.form.Click += this.FromClicked;}    }private void FromClicked(object sender, EventArgs e){this.form.Text = DateTime.Now.ToString();}}

3)

请添加图片描述

    class Program{static void Main(string[] args){Form form = new Form();//系统form是微软编写好的类,没有办法自定义一个Action//form.Click += form.Action;MyForm myForm = new MyForm();//myForm是事件拥有者和事件响应者,Click是事件,FoormClicked是事件处理器,+=是事件订阅myForm.Click += myForm.FoormClicked;myForm.ShowDialog();Console.ReadKey();}}class MyForm : Form{internal void FoormClicked(object sender, EventArgs e){this.Text = DateTime.Now.ToString();}}

4)

请添加图片描述

  • 事件拥有者是事件响应者的字段成员,事件响应是订阅自己成员的事件。
    class Program{static void Main(string[] args){MyForm myForm = new MyForm();myForm.ShowDialog();Console.ReadKey();}}class MyForm : Form{private TextBox textBox;private Button button;public  MyForm(){this.textBox = new TextBox();this.button = new Button();this.Controls.Add(this.button);this.Controls.Add(this.textBox);this.button.Click += this.ButtonClicked;this.button.Text = "Say Hello.";this.button.Top = 100;}private void ButtonClicked(object sender, EventArgs e){this.textBox.Text = "Hello,World!!";}}

二、事件的声明

事件的声明:

  • 完整声明
  • 简略声明(字段式声明,field-like)

有了委托字段/属性。为什么还需要事件?

  • 为了程序的逻辑更加”有道理“、更安全,谨防”借刀杀人“

所以事件的本质是微弱字段的一个包装器

  • 这个包装器对委托字段的访问起限制作用,相当于一个”蒙版“
  • 封装的(encapsulation)的一个重要功能就是隐藏
  • 事件对外界隐藏了委托实例的大部分功能,仅暴露添加/移除事件处理器的功能
  • 添加/移除事件处理器的时候可以直接使用方法名,这是委托实例所不具备的功能

用于声明事件的委托类型的命名约定

  • 1、用于声明Foo事件的委托,一般命名为FooEventHandler(除非是一个非常通用的事件约束)
  • 2、FooEventHandler 委托的参数一般有两个(由 Win32 API 演化而来,历史悠久)
    • 第一个是 object 类型,名字为 sender,实际上就是事件的拥有者、事件的source。
    • 第二个是 EventArgs 类的派生类,类名一般为 FooEventArgs ,参数名为e。也就是前面讲过的事件参数
    • 虽然没有官方的说法,但我们可以把委托的参数列表看作是发生后发送给事件响应者的“事件消息”
  • 3、触发 Foo 事件的方法一般命名为 OnFoo,即”因何引发“、”事件有因“
    • 访问级别为 protected,不能为 public,不然又成了可以”借刀杀人“了

事件的命名约定

  • 带有时态的动词或者动词短语
  • 事件拥有者”正在做“什么事情,用进行时;事件拥有者”做完了“什么事情,用完成时
http://www.hkea.cn/news/4508/

相关文章:

  • 石家庄物流网站建设免费模式营销案例
  • 马鞍山做网站公司关键词优化的原则
  • 进出口贸易网站制作朋友圈广告推广平台
  • 网络规划设计师是高级工程师吗临沂做网络优化的公司
  • 很多国外ip访问网站免费的行情网站app软件
  • 手机能用的网站项目平台
  • 南宁建站方案国内十大4a广告公司
  • 玉溪网站建设网站建设做电商如何起步
  • 南宁网站建设-中国互联最近发生的新闻
  • 98同城招聘网信息附近seo公司广州
  • pc网站做成移动网站seo网络营销推广
  • 网站的邀请怎么做的徐州seo排名公司
  • 微信小程序云开发收费标准seo入门教程
  • 长沙市网站制作多少钱营销型企业网站建设步骤
  • 办公室设计布局平面图专业网站优化推广
  • 企业网站如何进行定位南宁seo推广
  • 无锡做网站、百度一下首页网页
  • 嘉定房地产网站建设济南网络优化哪家专业
  • 宁波网站怎么建设seo什么职位
  • 响应式网站开发的特点品牌关键词优化哪家便宜
  • 甘肃网站建设专家百度快速收录入口
  • 中国室内设计艺术千年回眸seo免费优化
  • 东莞网站竞价推广seo网站营销推广公司
  • 网站建设维护更新百度谷歌seo优化
  • 建工网校app小辉seo
  • 怎么找做网站的客户网络广告营销策略
  • 怎么免费建立网店网站seo 工具分析
  • 网站做cdn怎么弄网址收录
  • web网站开发 ASP.NET长沙网络营销推广公司
  • 188自助建站系统网站被禁用如何解决