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

安康網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)!從網(wǎng)頁設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、APP開發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開發(fā),運(yùn)營維護(hù)。創(chuàng)新互聯(lián)2013年開創(chuàng)至今到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)。
這里介紹C#支持事件(這個(gè)特點(diǎn)也是MSVJ所具有的),當(dāng)前很多主流程序語言處理事件的方式各不相同,Delphi采用的是函數(shù)指針(這在Delphi中的術(shù)語是“closure”)、Java用改編類來實(shí)現(xiàn)、VC用WindowsAPI的消息系統(tǒng),而C#則直接使用delegate和event關(guān)鍵字來解決這個(gè)問題。下面讓我們來看一個(gè)例子,例子中會給大家舉出聲明、調(diào)用和處理事件的全過程。
- //首先是指代的聲明,它定義了喚醒某個(gè)函數(shù)的事件信號
- public delegate void ScoreChangeEventHandler (int newScore, ref bool cancel);
- //定義一個(gè)產(chǎn)生事件的類
- public class Game
- {
- // 注意這里使用了event關(guān)鍵字
- 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)
- {
- // 裁判負(fù)責(zé)調(diào)整比賽中的分?jǐn)?shù)變化
- game.ScoreChange += new ScoreChangeEventHandler (game_ScoreChange);
- }
- // 注意這里的函數(shù)是怎樣和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!");
- }
- }
- }
- // 主函數(shù)類,用于測試上述特性
- public class GameTest
- {
- public static void Main ()
- {
- Game game = new Game ();
- Referee referee = new Referee (game);
- game.Score = 70;
- game.Score = 110;
- }
- }
在主函數(shù)中,我們創(chuàng)建了一個(gè)game對象和一個(gè)裁判對象,然后我們通過改變比賽分?jǐn)?shù),來觀察裁判對此會有什么響應(yīng)。以上介紹C#支持事件。
【編輯推薦】
- C#線程同步詳細(xì)分析
- C#探討木馬程序淺談
- C# Pop3Connection類簡介
- C#數(shù)據(jù)類型簡單介紹
- C#計(jì)算素?cái)?shù)序列淺談
文章題目:C#支持事件簡單描述
文章起源:http://fisionsoft.com.cn/article/cceessc.html


咨詢
建站咨詢
