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

自动生成h5 wordpress免费seo教程资源

自动生成h5 wordpress,免费seo教程资源,wordpress mu 搜索,广州网站制作设计公司前言 在C#中,事件(Event)可以实现当类内部发生某些特定的事情时,它可以通知其他类或对象。事件是基于委托(Delegate)的,委托是一种类型安全的函数指针,它定义了方法的类型&#xff…

前言

在C#中,事件(Event)可以实现当类内部发生某些特定的事情时,它可以通知其他类或对象。事件是基于委托(Delegate)的,委托是一种类型安全的函数指针,它定义了方法的类型,使得可以将方法作为参数进行传递。

事件包含以下一些基本概念:
委托(Delegate):定义了一个方法的类型,使得可以将方法作为参数传递。
事件(Event):基于委托的,用于在类或对象之间提供通知的机制。
事件处理器(Event Handler):是一个符合特定签名的方法,用于响应事件。

1、如何定义事件

定义事件
首先,你需要定义一个委托,然后基于这个委托来声明一个事件。
下面这个委托MyEventHandler有两个参数,第一个参数是object类型,第二个参数是TempEventArgs类型,TempEventArgs这个类型是我自己定义的,继承于EventArgs。

 public delegate void MyEventHandler(object sender, TempEventArgs e);//声明一个委托
public class TempEventArgs : EventArgs{public double Temp { get; set; }public TempEventArgs(double temp){this.Temp = temp;}}

然后定义一个包含事件的类如下:

  //定义一个类,这个类包含一个事件,这个类也称为目标类class Thermostat{//声明事件public event MyEventHandler MyEventHandlerEvent = delegate { };//空委托,这样我们就不用在调用事件时先进行null值判断了。private double _CurrentTemperature;public double CurrentTemperature{get{return _CurrentTemperature;}set{if (value != CurrentTemperature){_CurrentTemperature = value;MyEventHandlerEvent?.Invoke(this, new TempEventArgs(CurrentTemperature));//触发事件}}}}

上面的Thermostat类中定义了一个MyEventHandlerEvent事件,事件由event修饰,基于MyEventHandler这个委托类型。并且通过属性CurrentTemperature的值的改变来触发事件,事件触发时其实就是调用委托,并且给委托传递了两个参数,第一个参数是Thermostat对象,第二个参数是将改变后的温度传入TempEventArgs类型的对象。

2、订阅和取消订阅事件

其他类或对象可以通过+=操作符来订阅事件,通过-=操作符来取消订阅事件,比如Cooler这个类就是一个需要订阅事件的其他类,这个类包含了一个事件处理器TemperatureChanged,当订阅事件以后,当事件触发以后,就会根据事件做出相应的处理。

 /// <summary>/// 这个类称为观察者类/// </summary>class Cooler{public Cooler(double temperature){this.Temperature = temperature;}public double Temperature { get; set; }//温度阈值//事件处理器public void TemperatureChanged(object sender, TempEventArgs tempEventArgs){double temperature = tempEventArgs.Temp;if (temperature > Temperature){Console.WriteLine("当前温度过高,冷却器开启");}else{Console.WriteLine("当前温度过低,冷却器关闭");}}}

下面的代码通过 +=为cooler对象订阅事件,订阅事件以后,通过 thermostat.CurrentTemperature = 60;这行代码可以触发事件。当使用-=取消订阅事件以后,通过thermostat.CurrentTemperature = 50;也不能触发事件了。

Thermostat thermostat = new Thermostat();Cooler cooler = new Cooler(50);thermostat.MyEventHandlerEvent += cooler.TemperatureChanged;//为目标增加观察者,也叫做为cooler对象订阅事件thermostat.CurrentTemperature = 60;thermostat.MyEventHandlerEvent -= cooler.TemperatureChanged;//为目标减去观察者,也叫做为cooler对象取消订阅事件thermostat.CurrentTemperature = 50;
http://www.yayakq.cn/news/254992/

相关文章:

  • 以品牌推广为目的的广告网络平台seo关键词优化排名
  • 做网站用虚拟主机好不好建设网站买了域名还要什么资料
  • 建设银行 上海科技中心网站网站建设流程周期
  • 威海建设集团的网站是什么平面设计培训费一般多少钱
  • 东莞营销网站建设价格站长之家seo一点询
  • 做网站属于It行业吗基于asp的网络课程网站开发
  • 国内网站设计欣赏网站怎么添加后台
  • 龙岗网站建设服务免费软件如何盈利
  • 长沙网站建设设计flash可以用来制作网页吗
  • 哪些网站是专做女性护肤品新桥网站建设
  • 网天下网站建设网络营销的经典案例
  • 怎么查询网站备案信息查询网络媒体设计
  • 东莞网站建站服务公司网页设计培训教育机构
  • 网站关键字搜索功能优化大师有用吗
  • 网站如何做死链接提交南宁轨道交通app下载
  • 哪个网站上可以做代打创立外包网站
  • 十大免费分销系统网站seo关键字优化
  • 江苏网站建设的案例展示wordpress基本教程
  • 网站建设求职简历模板下载大连网站关键词
  • 网站建设切片效果是什么佛山网站建设制作
  • php网站进后台福田区罗湖区最新通告
  • 网站建设网站定制评论 wordpress
  • 做网站是属于哪个专业优书网
  • 国外网站国内做二维码海外购物网站建设
  • 莆田市荔城区建设局网站网站页面建设需要ps吗
  • 互动的网站食品电子商务网站建设方案
  • 阳江网站制作少儿编程培训
  • 杭州企业网站制作海口网站建设公司排名
  • 宁波专业的网站搭建公司笔记wordpress
  • 太原搭建网站的公司哪家好企业网站定制开发