C#支持事件简单描述

本文向大家介绍C#支持事件,可能好多人还不了解C#支持事件,没有关系,看完本文你肯定有不少收获,希望本文能教会你更多东西。

安康网站制作公司哪家好,找创新互联!从网页设计、网站建设、微信开发、APP开发、成都响应式网站建设公司等网站项目制作,到程序开发,运营维护。创新互联2013年开创至今到现在10年的时间,我们拥有了丰富的建站经验和运维经验,来保证我们的工作的顺利进行。专注于网站建设就选创新互联

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

 
 
 
  1. //首先是指代的声明,它定义了唤醒某个函数的事件信号  
  2. public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);  
  3.  
  4. //定义一个产生事件的类  
  5. public class Game  
  6. {  
  7. // 注意这里使用了event关键字  
  8. public event ScoreChangeEventHandler ScoreChange;  
  9. int score;  
  10. // Score 属性  
  11. public int Score  
  12. {  
  13. get {  
  14. return score;  
  15. }  
  16. set {  
  17. if (score != value)  
  18. {  
  19. bool cancel = false;  
  20. ScoreChange (value, ref cancel);  
  21. if (! cancel)  
  22. score = value;  
  23. }  
  24. }  
  25. }  
  26.  
  27.  
  28. // 处理事件的类  
  29. public class Referee  
  30. {  
  31. public Referee (Game game)  
  32. {  
  33. // 裁判负责调整比赛中的分数变化  
  34. game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);  
  35. }  
  36.  
  37. // 注意这里的函数是怎样和ScoreChangeEventHandler的信号对上号的  
  38. private void game_ScoreChange (int newScore, ref bool cancel)  
  39. {  
  40. if (newScore < 100)  
  41. System.Console.WriteLine ("Good Score");  
  42. else  
  43. {  
  44. cancel = true;  
  45. System.Console.WriteLine ("No Score can be that high!");  
  46. }  
  47. }  
  48. }  
  49.  
  50. // 主函数类,用于测试上述特性  
  51. public class GameTest  
  52. {  
  53. public static void Main ()  
  54. {  
  55. Game game = new Game ();  
  56. Referee referee = new Referee (game);  
  57. game.Score = 70;  
  58. game.Score = 110;  
  59. }  
  60. }  

在主函数中,我们创建了一个game对象和一个裁判对象,然后我们通过改变比赛分数,来观察裁判对此会有什么响应。以上介绍C#支持事件。

【编辑推荐】

  1. C#线程同步详细分析
  2. C#探讨木马程序浅谈
  3. C# Pop3Connection类简介
  4. C#数据类型简单介绍
  5. C#计算素数序列浅谈

当前标题:C#支持事件简单描述
路径分享:http://www.shufengxianlan.com/qtweb/news12/225862.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联