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

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


咨詢
建站咨詢
