自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#支持事件簡(jiǎn)單描述

開(kāi)發(fā) 后端
這里介紹C#支持事件,當(dāng)前很多主流程序語(yǔ)言處理事件的方式各不相同,Delphi采用的是函數(shù)指針、Java用改編類(lèi)來(lái)實(shí)現(xiàn)、VC用WindowsAPI的消息系統(tǒng),而C#則直接使用delegate和event關(guān)鍵字來(lái)解決這個(gè)問(wèn)題。

本文向大家介紹C#支持事件,可能好多人還不了解C#支持事件,沒(méi)有關(guān)系,看完本文你肯定有不少收獲,希望本文能教會(huì)你更多東西。

這里介紹C#支持事件(這個(gè)特點(diǎn)也是MSVJ所具有的),當(dāng)前很多主流程序語(yǔ)言處理事件的方式各不相同,Delphi采用的是函數(shù)指針(這在Delphi中的術(shù)語(yǔ)是“closure”)、Java用改編類(lèi)來(lái)實(shí)現(xiàn)、VC用WindowsAPI的消息系統(tǒng),而C#則直接使用delegate和event關(guān)鍵字來(lái)解決這個(gè)問(wèn)題。下面讓我們來(lái)看一個(gè)例子,例子中會(huì)給大家舉出聲明、調(diào)用和處理事件的全過(guò)程。

  1. //首先是指代的聲明,它定義了喚醒某個(gè)函數(shù)的事件信號(hào)  
  2. public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);  
  3.  
  4. //定義一個(gè)產(chǎn)生事件的類(lèi)  
  5. public class Game  
  6. {  
  7. // 注意這里使用了event關(guān)鍵字  
  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. // 處理事件的類(lèi)  
  29. public class Referee  
  30. {  
  31. public Referee (Game game)  
  32. {  
  33. // 裁判負(fù)責(zé)調(diào)整比賽中的分?jǐn)?shù)變化  
  34. game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);  
  35. }  
  36.  
  37. // 注意這里的函數(shù)是怎樣和ScoreChangeEventHandler的信號(hào)對(duì)上號(hào)的  
  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. // 主函數(shù)類(lèi),用于測(cè)試上述特性  
  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. }  

在主函數(shù)中,我們創(chuàng)建了一個(gè)game對(duì)象和一個(gè)裁判對(duì)象,然后我們通過(guò)改變比賽分?jǐn)?shù),來(lái)觀察裁判對(duì)此會(huì)有什么響應(yīng)。以上介紹C#支持事件。

【編輯推薦】

  1. C#線(xiàn)程同步詳細(xì)分析
  2. C#探討木馬程序淺談
  3. C# Pop3Connection類(lèi)簡(jiǎn)介
  4. C#數(shù)據(jù)類(lèi)型簡(jiǎn)單介紹
  5. C#計(jì)算素?cái)?shù)序列淺談
責(zé)任編輯:佚名 來(lái)源: 博客園
相關(guān)推薦

2009-09-02 17:38:16

C#泛型支持

2009-09-03 15:46:57

C#自定義事件

2009-08-31 18:32:01

C# ListBoxE

2009-08-12 18:28:09

C#事件處理程序

2009-08-19 10:09:21

C#和C++

2009-08-20 16:45:03

C#哈希值

2009-08-27 10:01:52

C#自動(dòng)屬性

2009-09-01 17:08:35

C# Color枚舉

2009-09-03 16:55:58

C#引用類(lèi)型

2009-09-16 09:01:40

C#多維數(shù)組

2009-08-21 17:31:58

C#垃圾回收

2009-08-13 17:58:34

C#存儲(chǔ)過(guò)程

2009-08-28 09:30:48

C#命名屬性

2009-09-01 18:25:32

C#結(jié)構(gòu)實(shí)例

2009-09-02 13:01:11

C#多路廣播

2009-09-07 14:33:02

C# switch語(yǔ)句

2009-09-17 16:28:27

C#參差數(shù)組

2009-09-02 10:39:00

C#釋放托管資源

2009-08-31 17:53:20

C#實(shí)現(xiàn)索引器

2009-09-03 10:19:12

C#表單控件
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)