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

广告设计需要学什么课程长安网站优化公司

广告设计需要学什么课程,长安网站优化公司,wpf做网站教程,网站制作中企动力公司前言 在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.tj-hxxt.cn/news/82708.html

相关文章:

  • 公司网站建设的建议网站关键词排名
  • 做代购注册什么网站宁波网站推广运营公司
  • 浮雕模东莞网站建设线上营销推广方案有哪些
  • 郑州专做喜宴的网站网络广告营销的案例
  • 县政府网站问题建设调研报告百度关键词搜索怎么做
  • ppt做长图网站做网站哪个公司最好
  • 盐城网站开发市场aso优化平台有哪些
  • 杭州市社区建设网站网站关键词推广工具
  • 常州百度快速优化seo在线教程
  • 需要网站建设最新社会舆情信息
  • 企业网站设计开发如何在百度发视频推广
  • 企业做网站设计百度官网认证价格
  • 坪山网站建设哪家便宜做网上营销怎样推广
  • 做网站怎么制作网站优化关键词价格
  • 做网站前怎么建立数据结构内容企业推广
  • 交警队内部网站建设拉新奖励的app排行
  • 一键搭建网站系统营销工具
  • wordpress汽配网站考研培训机构排名前五的机构
  • 邯郸市城市建设局网站济南最新消息
  • 信誉好的郑州网站建设直播网站排名
  • 政府网站集约化建设内容发布悬赏任务的推广平台
  • 阿里买域名 电脑做网站全国疫情最新消息
  • 政府网站数字化建设网络广告电话
  • 服务五象新区开发建设指挥部网站seo推广优化外包公司
  • 网站推广策划的流程优秀网页设计作品
  • 网站诊断分析报告模板及优化执行方案.doc开一个免费网站
  • 业务网站制作百度app平台
  • 电商网站开发流程list企业查询网站
  • 电商到底干嘛的北京专门做seo
  • 香港房地产网站产品推广步骤