C#支持事件举例分析

本篇内容介绍了“C#支持事件举例分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

10年积累的成都网站设计、网站制作经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站设计后付款的网站建设流程,更有丛台免费网站建设让你可以放心的选择与我们合作。

这里介绍C#支持事件(这个特点也是MSVJ所具有的),当前很多主流程序语言处理事件的方式各不相同,Delphi采用的是函数指针(这在Delphi中的术语是“closure”)、Java用改编类来实现、VC用WindowsAPI的消息系统,而C#则直接使用delegate和event关键字来解决这个问题。下面让我们来看一个例子,例子中会给大家举出声明、调用和处理事件的全过程。

//首先是指代的声明,它定义了唤醒某个函数的事件信号  public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);   //定义一个产生事件的类  public class Game  {  // 注意这里使用了event关键字  public event ScoreChangeEventHandler ScoreChange;  int score;  // Score 属性  public int Score  {  get {  return score;  }  set {  if (score != value)  {  bool cancel = false;  ScoreChange (value, ref cancel);  if (! cancel)  score = value;  }  }  }    // 处理事件的类  public class Referee  {  public Referee (Game game)  {  // 裁判负责调整比赛中的分数变化  game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);  }   // 注意这里的函数是怎样和ScoreChangeEventHandler的信号对上号的  private void game_ScoreChange (int newScore, ref bool cancel)  {  if (newScore < 100)  System.Console.WriteLine ("Good Score");  else  {  cancel = true;  System.Console.WriteLine ("No Score can be that high!");  }  }  }   // 主函数类,用于测试上述特性  public class GameTest  {  public static void Main ()  {  Game game = new Game ();  Referee referee = new Referee (game);  game.Score = 70;  game.Score = 110;  }  }

在主函数中,我们创建了一个game对象和一个裁判对象,然后我们通过改变比赛分数,来观察裁判对此会有什么响应。

“C#支持事件举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注创新互联网站,小编将为大家输出更多高质量的实用文章!


分享标题:C#支持事件举例分析
网页链接:http://azwzsj.com/article/joogjs.html