国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

事件理解及初識

2019-11-17 02:26:05
字體:
來源:轉載
供稿:網友

事件理解及初識

類或對象可以通過事件向其他類或對象通知發生的相關事情

發行者確定何時引發事件,訂戶確定執行何種操作來響應該事件。

C#中的事件處理實際上是一種具有特殊簽名的delegate

假設一個場景 :老師登記分數后,學生馬上接收到分數

發布者首先要寫的代碼

1、定義一個委托和事件,寫一個方法,當這個方法調用時觸發事件通知訂閱者

 public class Teacher    {        public delegate void TellScoreEventHandler(object sender, ScoreEventArgs e);        public event TellScoreEventHandler tellScoreEvent;               /// <summary>        /// 通知訂閱者事件發生        /// </summary>        /// <param name="e"></param>        public void OnTellScore(ScoreEventArgs e)        {            if (tellScoreEvent != null)                tellScoreEvent(this, e);        }        /// <summary>        /// 調用方法時,觸發事件        /// </summary>        /// <param name="name"></param>        /// <param name="score"></param>        public void TellStudentSocre(string name,int score)        {            ScoreEventArgs scoreArgs = new ScoreEventArgs(name, score);            OnTellScore(scoreArgs);        }    }    /// <summary>    /// 自定義事件數據的類    /// </summary>    public class ScoreEventArgs : EventArgs    {        public int Score { get; set; }        public string Name { get; set; }        public ScoreEventArgs(string name,int score)        {            this.Name = name;            this.Score = score;        }    }

2、先添加一個訂閱者,后調用發布者中能觸發事件的方法

Student stu = new Student();            Teacher teacher = new Teacher();            teacher.tellScoreEvent += new Teacher.TellScoreEventHandler(stu.teacher_tellScoreEvent);            teacher.TellStudentSocre("奮斗的QB", 100);

3、在訂閱者里處理,當事件發生時,如何處理

 public class Student    {//當事件發生后,如何處理        public void teacher_tellScoreEvent(object sender, ScoreEventArgs e)        {            MessageBox.Show(e.Name + "考了" + e.Score.ToString());        }    }


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 林西县| 巴马| 博白县| 重庆市| 南平市| 上林县| 巴林右旗| 天津市| 江达县| 荆州市| 绍兴市| 磐石市| 鲁甸县| 九江市| 乌鲁木齐市| 涟源市| 平泉县| 浦北县| 台东市| 普陀区| 浏阳市| 蒙自县| 沁源县| 四平市| 克拉玛依市| 邮箱| 灵寿县| 柳林县| 湟中县| 西昌市| 东阳市| 北碚区| 龙泉市| 阆中市| 双柏县| 赣榆县| 三台县| 富川| 遵义县| 安阳市| 镇江市|