你的位置:首页 > ASP.net教程

[ASP.net教程]事件理解及初识

类或对象可以通过事件向其他类或对象通知发生的相关事情

发行者确定何时引发事件,订户确定执行何种操作来响应该事件。

C#中的事件处理实际上是一种具有特殊签名的delegate

假设一个场景 :老师登记分数后,学生马上接收到分数

发布者首先要写的代码

1、定义一个委托和事件,写一个方法,当这个方法调用时触发事件通知订阅者

 public class Teacher  {    public delegate void TellScoreEventHandler(object sender, ScoreEventArgs e);    public event TellScoreEventHandler tellScoreEvent;        /// <summary>    /// 通知订阅者事件发生    /// </summary>    /// <param name="e"></param>    public void OnTellScore(ScoreEventArgs e)    {      if (tellScoreEvent != null)        tellScoreEvent(this, e);    }    /// <summary>    /// 调用方法时,触发事件    /// </summary>    /// <param name="name"></param>    /// <param name="score"></param>    public void TellStudentSocre(string name,int score)    {      ScoreEventArgs scoreArgs = new ScoreEventArgs(name, score);      OnTellScore(scoreArgs);    }  }  /// <summary>  /// 自定义事件数据的类  /// </summary>  public class ScoreEventArgs : EventArgs  {    public int Score { get; set; }    public string Name { get; set; }    public ScoreEventArgs(string name,int score)    {      this.Name = name;      this.Score = score;    }  }

2、先添加一个订阅者,后调用发布者中能触发事件的方法

Student stu = new Student();      Teacher teacher = new Teacher();      teacher.tellScoreEvent += new Teacher.TellScoreEventHandler(stu.teacher_tellScoreEvent);      teacher.TellStudentSocre("奋斗的QB", 100);

3、在订阅者里处理,当事件发生时,如何处理

 public class Student  {//当事件发生后,如何处理    public void teacher_tellScoreEvent(object sender, ScoreEventArgs e)    {      MessageBox.Show(e.Name + "考了" + e.Score.ToString());    }  }

 


新疆旅游报价价格新疆旅游景点推荐新疆旅游团报价新疆旅游团购优惠新疆旅游线路报价一线天在哪_一线天在哪里_一线天在哪个省 洪泽湖在哪个省_洪泽湖在哪里 西藏独特的茶文化 瘦西湖门票价格_扬州瘦西湖门票多少钱 未来三天南方将有较强降水 手把手教你做正宗川味红烧牛肉面 5·12三周年世园会汶川园将隆重开园 四川:5月19日游蜀南竹海门票五折优惠 汤山紫清湖温泉酒店是几星级的?紫清湖温泉酒店具体位置? 黄腾峡漂流团购在哪买?清远黄腾峡漂流怎么买实惠? 2015孤岛槐花节在哪里?东营孤岛槐花节攻略? 东营孤岛槐花开了吗?孤岛槐花节时间? 2015元旦南通去哪里好玩?南通元旦活动孩子家人有什么好玩地方? 三亚凤凰岭乘几路车?凤凰岭公园坐车需要多长时间? 三亚凤凰岭2015元旦有什么活动?凤凰岭公园元旦票价? 2015元旦东莞去哪里好玩?东莞元旦活动孩子家人有什么好玩地方? EC4406C-TL-H Datasheet EC4406C-TL-H Datasheet PMR780SN,115 Datasheet PMR780SN,115 Datasheet ZVN4306A Datasheet ZVN4306A Datasheet 浙江出发去蒙古旅游 浙江出发去蒙古旅游 浙江出发去蒙古旅游 浙江出发去蒙特塞拉特旅游 浙江出发去蒙特塞拉特旅游 浙江出发去蒙特塞拉特旅游 浙江出发去孟加拉国旅游 浙江出发去孟加拉国旅游 浙江出发去孟加拉国旅游