C#支持事件举例分析

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

这里介绍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#支持事件举例分析”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注亿速云网站,小编将为大家输出更多高质量的实用文章!

原创文章,作者:3628473679,如若转载,请注明出处:https://blog.ytso.com/230476.html

(0)
上一篇 2022年1月15日
下一篇 2022年1月15日

相关推荐

发表回复

登录后才能评论