面向?qū)ο螅ㄊ耍?事件 event

1. 簡介:

類或?qū)ο罂梢酝ㄟ^事件向其他類或?qū)ο笸ㄖl(fā)生的相關(guān)事情。 發(fā)送事件的類稱為“發(fā)行者”裹纳,接收事件的類稱為“訂閱者”。
事件基于委托。

2. 事件概述

  • 發(fā)行者確定何時引發(fā)事件闯团;訂閱者確定對事件作出何種響應(yīng)。

  • 一個事件可以有多個訂閱者仙粱。訂閱者可以處理來自多個發(fā)行者的多個事件房交。

  • 沒有訂閱者的事件永遠也不會引發(fā)。

  • 事件通常用于表示用戶操作伐割,例如單擊按鈕或圖形用戶界面中的菜單選項候味。

  • 當(dāng)事件具有多個訂閱戶時,引發(fā)該事件時會同步調(diào)用事件處理程序隔心。

  • 在 .NET Framework 類庫中白群,事件基于 EventHandler委托和 EventArgs基類。

3. 訂閱和取消事件

聲明一個事件: public event Action 事件名稱;

對事件添加訂閱: 事件名稱 += 要添加的方法名硬霍。

對事件取消訂閱: 事件名稱 -= 要取消的方法名帜慢。取消所有的方法后,事件會置為null唯卖。

**事件的調(diào)用: ** 事件名稱(); 事件的調(diào)用只能在聲明事件的類中調(diào)用粱玲,不可在該類之外調(diào)用。

4. 事件案例

學(xué)校有上課鈴和下課鈴拜轨。
當(dāng)老師聽到上課鈴后抽减,給學(xué)生開始講課,讓學(xué)生聽講橄碾。
當(dāng)老師聽到下課鈴后卵沉,停止講課颠锉,開始休息,并讓學(xué)生休息偎箫。

5. 為接口添加事件

接口可聲明事件木柬。 下面的示例演示如何在類中實現(xiàn)接口事件。

    public interface Interface1
    {
        event Action Test1;
    }
    
    public class Person : Interface1
    {
        public string name;
        private int age;

        public event Action Test1;

        public override string ToString()
        {
            if(Test1 != null)
            { 
                Test1();
            }
            return this.name;
        }
    }

6淹办、兩個接口中有相同事件

下面的示例演示如何處理以下的不常見情況:您的類是從兩個以上的接口繼承的眉枕,每個接口都含有同名事件)。 在這種情況下怜森,您至少要為其中一個事件提供顯式接口實現(xiàn)速挑。 為事件編寫顯式接口實現(xiàn)時,必須編寫 add和 remove事件訪問器副硅。 這兩個事件訪問器通常由編譯器提供姥宝,但在這種情況下編譯器不能提供。

public interface Interface1
    {
        event Action Test1;
    }
    
     interface Interface2
    {
        event Action Test1;
    }
    
  public class Person : Interface1 , Interface2
    {

        private object lockObj = new object();

        public event Action inter1Test1;
        event Action Interface1.Test1
        {
            add
            {
                lock (lockObj)
                {
                    inter1Test1 += value;
                }
            }
            remove
            {
                lock (lockObj)
                {
                    inter1Test1 -= value;
                }
            }
        }
        public event Action Test1;
}
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末恐疲,一起剝皮案震驚了整個濱河市腊满,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌培己,老刑警劉巖碳蛋,帶你破解...
    沈念sama閱讀 211,561評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異省咨,居然都是意外死亡肃弟,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,218評論 3 385
  • 文/潘曉璐 我一進店門零蓉,熙熙樓的掌柜王于貴愁眉苦臉地迎上來笤受,“玉大人,你說我怎么就攤上這事敌蜂÷崾蓿” “怎么了?”我有些...
    開封第一講書人閱讀 157,162評論 0 348
  • 文/不壞的土叔 我叫張陵章喉,是天一觀的道長汗贫。 經(jīng)常有香客問我,道長囊陡,這世上最難降的妖魔是什么芳绩? 我笑而不...
    開封第一講書人閱讀 56,470評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮撞反,結(jié)果婚禮上妥色,老公的妹妹穿的比我還像新娘。我一直安慰自己遏片,他們只是感情好嘹害,可當(dāng)我...
    茶點故事閱讀 65,550評論 6 385
  • 文/花漫 我一把揭開白布撮竿。 她就那樣靜靜地躺著,像睡著了一般笔呀。 火紅的嫁衣襯著肌膚如雪幢踏。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,806評論 1 290
  • 那天许师,我揣著相機與錄音房蝉,去河邊找鬼。 笑死微渠,一個胖子當(dāng)著我的面吹牛搭幻,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播逞盆,決...
    沈念sama閱讀 38,951評論 3 407
  • 文/蒼蘭香墨 我猛地睜開眼檀蹋,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了云芦?” 一聲冷哼從身側(cè)響起俯逾,我...
    開封第一講書人閱讀 37,712評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎舅逸,沒想到半個月后桌肴,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,166評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡堡赔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,510評論 2 327
  • 正文 我和宋清朗相戀三年识脆,在試婚紗的時候發(fā)現(xiàn)自己被綠了设联。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片善已。...
    茶點故事閱讀 38,643評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖离例,靈堂內(nèi)的尸體忽然破棺而出换团,到底是詐尸還是另有隱情,我是刑警寧澤宫蛆,帶...
    沈念sama閱讀 34,306評論 4 330
  • 正文 年R本政府宣布艘包,位于F島的核電站,受9級特大地震影響耀盗,放射性物質(zhì)發(fā)生泄漏想虎。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,930評論 3 313
  • 文/蒙蒙 一叛拷、第九天 我趴在偏房一處隱蔽的房頂上張望舌厨。 院中可真熱鬧,春花似錦忿薇、人聲如沸裙椭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,745評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽揉燃。三九已至扫尺,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間炊汤,已是汗流浹背正驻。 一陣腳步聲響...
    開封第一講書人閱讀 31,983評論 1 266
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留抢腐,地道東北人拨拓。 一個月前我還...
    沈念sama閱讀 46,351評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像氓栈,于是被迫代替她去往敵國和親渣磷。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 43,509評論 2 348

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理授瘦,服務(wù)發(fā)現(xiàn)醋界,斷路器,智...
    卡卡羅2017閱讀 134,633評論 18 139
  • 國家電網(wǎng)公司企業(yè)標準(Q/GDW)- 面向?qū)ο蟮挠秒娦畔?shù)據(jù)交換協(xié)議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 10,927評論 6 13
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,769評論 25 707
  • 茶詩花閱讀 1,972評論 25 72
  • 今天上午沒有課走進教室去聽課提完,一聽老師們講課情況也是對自己業(yè)務(wù)的充電形纺,二是觀察班級學(xué)生上課情況。 我坐在A同學(xué)的旁...
    冰點兒cui閱讀 146評論 0 0