温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

C#支持事件举例分析

发布时间:2021-12-01 10:05:41 来源:亿速云 阅读:154 作者:iii 栏目:编程语言

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

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI