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

国外网站设计风格todoist wordpress

国外网站设计风格,todoist wordpress,html5 微网站 免费,内容管理网站【C#语言入门】17. 事件详解(上) 一、初步了解事件 定义:单词Event,译为“事件” 通顺的解释就是**“能够发生的什么事情”**,例如,“苹果”不能发生,但是“公司上市”这件事能发生。在C#中事…

【C#语言入门】17. 事件详解(上)

一、初步了解事件

  • 定义:单词Event,译为“事件”
    • 通顺的解释就是**“能够发生的什么事情”**,例如,“苹果”不能发生,但是“公司上市”这件事能发生。
    • 在C#中事件是类型的成员,没有公司就没有公司上市这件事。
  • 担任角色:使对象或者类具备通知能力的成员。
    • (中译)事件(event)是一种使对象或者类能够提供通知的成员。
    • (原文)An event is a member that enables an object or class to provide notifications.
    • “对象O拥有一个事件E”想要表达的思想是:当事件E发生的时候,O有能力通知别的对象。
    • 事件的功能——通知 + 可选的事件参数(即详细信息)
  • 使用:用于对象或者类间的动作协调与信息传递(消息推送)
  • 原理:事件模型(event model)中的两个“5”
    • “发生→响应”中的五个部分:闹钟响了我起床,时间到了我下班……隐含着第五个部分“订阅”关系,某关心某的状态。
    • “发生→响应”中的五个动作:(1)我有一个事件 →(2)一个人或者一群人关心我的这个事件 →(3)我的这个事件发生了 →(4)关心这个事件的人会被依次通知到 →(5)被通知到的人根据拿到的事件信息(又称“事件数据”、“事件参数”、“通知”)对事件进行响应(又称“处理事件”)。
  • 术语定义:
    • 事件的订阅者 = 事件消息的接受者,事件的响应者,事件的处理者,被事件所通知的对象。
    • 事件参数 = 事件信息,事件消息,事件数据。
  • 提示:
    • 事件多用于桌面、手机等开发的客户端编程,因为这些程序经常是用户通过事件来驱动的。
    • 各种编程语言对这个机制的实现方法不尽相同。
    • Java语言里面没有事件这种成员,也没有委托这种数据类型。Java的"事件"是使用接口来实现的
    • MVC\MVP\MVVM等模式,是事件模式更高级、更有效的“玩法”
    • 日常开发的时候,使用已有事件的机会比较多,自己声明事件的机会比较少,所以先学会使用。

二、事件的应用

  • 实例演示

    • 派生(继承)与扩展(extends)
  • 事件模型的五个组成部分

    1. 事件的拥有者(event source,对象)
    2. 事件成员(event,成员)
    3. 事件的响应者(event subscriber,对象)
    4. 事件处理器(event hander,成员)——本质上是一个回调方法
    5. 事件订阅——把事件处理器与事件关联在一起,本质上是一种以委托类型为基础的“约定”。
  • 组合方式
    请添加图片描述
    请添加图片描述
    请添加图片描述

  • 注意

    • 事件处理器是方法成员
    • 挂接事件处理器的时候,可以使用委托实例,也可以直接使用方法名,这是个语法糖
    • 事件处理器对事件的订阅不是随意的,匹配与否由声明事件时所使用的委托类型来检测
    • 事件可以同步调用也可以异步调用
internal class Program
{static void Main(string[] args){Timer timer = new Timer();timer.Interval = 1000;//单位毫秒Boy boy = new Boy();Girl girl = new Girl();timer.Elapsed += girl.Action;timer.Elapsed += boy.Action;//订阅操作+=,Elapsed是事件成员,timer是事件拥有者,boy是事件响应者timer.Start();Console.ReadLine();}
}class Boy
{internal void Action(object sender, ElapsedEventArgs e){Console.WriteLine("Jump!");}
}class Girl
{internal void Action(object sender, ElapsedEventArgs e){Console.WriteLine("Sing!");}
}
class EventExample1
{static void Main(string[] args){Form form = new Form();//事件拥有者Controller controller = new Controller(form);//事件响应者form.ShowDialog();}}class Controller
{private Form form;public Controller(Form form){if (form != null){this.form = form;this.form.Click += this.FormClicked;//事件成员,事件订阅}}private void FormClicked(object sender, EventArgs e){this.form.Text = DateTime.Now.ToString();//事件处理器}
}
class EventExample1
{static void Main(string[] args){MyForm myForm = new MyForm();myForm.Click += myForm.FormClicked;myForm.ShowDialog();    }}class MyForm : Form
{internal void FormClicked(object sender, EventArgs e){this.Text = DateTime.Now.ToString();}
}
class EventExample1
{static void Main(string[] args){MyForm form = new MyForm();form.ShowDialog();}}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;this.button.Left = 50;}private void ButtonClicked(object sender, EventArgs e){this.textBox.Text = "Hello,World!!!!!!!!!!!!!!";//事件处理器}
}
http://www.yayakq.cn/news/546555/

相关文章:

  • 下列关于网站开发中网页发布厦门正规网站建设多少
  • 建wiki网站自己做的网站可以卖
  • 响应式网站模版建站电脑宽带网站
  • 网站设建设网站建设基本费用
  • 网站横幅怎么更换合肥市中小企业局网站
  • 富连网网站开发店铺首页设计步骤
  • 河北提供网站制作公司报价上海公司买房最新政策2021
  • 关于成立网站建设项目小组的通知建设公司logo
  • 开发公司把已经出售的房子一房二卖卖给股东个人百度seo公司电话
  • 网站开发数据接口如何利用建瓯市建设局网站
  • 为何只有建设银行网站打不开南阳建设网站制作
  • 江苏网站集约化建设多平台网页制作
  • 做电脑网站手机能显示不出来网页怎么制作视频
  • 建设网站用图片需要版权网站建设优化经验
  • 陶瓷 网站模板唐山模板建站定制网站
  • 网站建设经验交流一个新手怎么做电商运营
  • 如何做自己的网站或者论坛揭阳关键词网站排名
  • 有教做桥梁质检资料的网站吗英文网站制作公司哪家好
  • 一级a行做爰片免费网站网站做直播吗
  • 微信网站制作哪个好如何做网站热力图
  • 手机网站php源码wordpress 在线教学
  • 成都网站建设思乐科技怎么用源代码做网站
  • 汕头网站推广排名wordpress 修改自定义菜单
  • 培训网站建设方案模板下载商丘网站建设aliapp
  • 网站上线具体流程赣州有做网站推广的公司吗
  • wordpress做付费下载站wordpress 页面模版
  • 百度网站建设优化做网站需要公司
  • 网站优化推广是什么上海公司黄页网站
  • 嘉定区做网站保险网站哪家好
  • 银川网站建设推广wordpress 缓存 自适应