C#之事件(event)

事件是什么

類或?qū)ο罂梢酝ㄟ^事件向其他類或?qū)ο笸ㄖl(fā)生的相關(guān)事情假瞬。 發(fā)送事件的類稱為“發(fā)行者”,接收事件的類稱為“訂閱者”。
事件其實就是一個特殊的委托墩莫,對事件的聲名其實就是聲明一個私有的委托變量翅敌。

語法

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

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

對事件取消訂閱: 事件名稱 -= 要取消的方法名。取消所有的方法后蚯涮,事件會置為null治专。

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

事件基本格式
訪問修飾符 event 委托名稱 事件名稱;
代碼如下:

   public  delegate void delTest();
   public  event  delTest  eventTest;

注冊事件(可以給一個事件注冊多個方法)復(fù)制代碼

代碼如下:

   eventTest += new delTest(method1);
   eventTest += new delTest(method2);
事件概述

1.發(fā)行者確定何時引發(fā)事件张峰;訂閱者確定對事件作出何種響應(yīng)。

2.一個事件可以有多個訂閱者棒旗。訂閱者可以處理來自多個發(fā)行者的多個事件喘批。

3.沒有訂閱者的事件永遠(yuǎn)也不會引發(fā)。

4.事件通常用于表示用戶操作铣揉,例如單擊按鈕或圖形用戶界面中的菜單選項饶深。

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

6.在 .NET Framework 類庫中敌厘,事件基于 EventHandler委托和 EventArgs基類。

聲明事件

事件和方法一樣具有簽名朽合,簽名包括名稱和參數(shù)列表俱两。事件的簽名通過委托類型來定義,例如:

public delegate void TestEventDelegate(object sender, System.EventArgs e);

.NET Framework 中事件的簽名中旁舰,通常第一個參數(shù)為引用事件源的對象锋华,第二個參數(shù)為一個傳送與事件相關(guān)的數(shù)據(jù)的類。但是箭窜,在 C# 語言中并不強(qiáng)制使用這種形式毯焕;只要事件簽名返回 void,其他方面可以與任何有效的委托簽名一樣。
向類中添加事件需要使用 event 關(guān)鍵字纳猫,并提供委托類型和事件名稱婆咸。例如:

public class EventSource
{
    public event TestEventDelegate TestEvent;
    private void RaiseTestEvent() { /* ... */ }
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市芜辕,隨后出現(xiàn)的幾起案子尚骄,更是在濱河造成了極大的恐慌,老刑警劉巖侵续,帶你破解...
    沈念sama閱讀 217,657評論 6 505
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件倔丈,死亡現(xiàn)場離奇詭異,居然都是意外死亡状蜗,警方通過查閱死者的電腦和手機(jī)需五,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,889評論 3 394
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轧坎,“玉大人宏邮,你說我怎么就攤上這事「籽” “怎么了蜜氨?”我有些...
    開封第一講書人閱讀 164,057評論 0 354
  • 文/不壞的土叔 我叫張陵,是天一觀的道長捎泻。 經(jīng)常有香客問我飒炎,道長,這世上最難降的妖魔是什么族扰? 我笑而不...
    開封第一講書人閱讀 58,509評論 1 293
  • 正文 為了忘掉前任厌丑,我火速辦了婚禮,結(jié)果婚禮上渔呵,老公的妹妹穿的比我還像新娘怒竿。我一直安慰自己,他們只是感情好扩氢,可當(dāng)我...
    茶點故事閱讀 67,562評論 6 392
  • 文/花漫 我一把揭開白布耕驰。 她就那樣靜靜地躺著,像睡著了一般录豺。 火紅的嫁衣襯著肌膚如雪朦肘。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,443評論 1 302
  • 那天双饥,我揣著相機(jī)與錄音媒抠,去河邊找鬼。 笑死咏花,一個胖子當(dāng)著我的面吹牛趴生,可吹牛的內(nèi)容都是我干的阀趴。 我是一名探鬼主播,決...
    沈念sama閱讀 40,251評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼苍匆,長吁一口氣:“原來是場噩夢啊……” “哼刘急!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起浸踩,我...
    開封第一講書人閱讀 39,129評論 0 276
  • 序言:老撾萬榮一對情侶失蹤叔汁,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后检碗,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體据块,經(jīng)...
    沈念sama閱讀 45,561評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,779評論 3 335
  • 正文 我和宋清朗相戀三年折剃,在試婚紗的時候發(fā)現(xiàn)自己被綠了瑰钮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 39,902評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡微驶,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出开睡,到底是詐尸還是另有隱情因苹,我是刑警寧澤,帶...
    沈念sama閱讀 35,621評論 5 345
  • 正文 年R本政府宣布篇恒,位于F島的核電站扶檐,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏胁艰。R本人自食惡果不足惜款筑,卻給世界環(huán)境...
    茶點故事閱讀 41,220評論 3 328
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望腾么。 院中可真熱鬧奈梳,春花似錦、人聲如沸解虱。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,838評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽殴泰。三九已至于宙,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間悍汛,已是汗流浹背捞魁。 一陣腳步聲響...
    開封第一講書人閱讀 32,971評論 1 269
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留离咐,地道東北人谱俭。 一個月前我還...
    沈念sama閱讀 48,025評論 2 370
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親旺上。 傳聞我的和親對象是個殘疾皇子瓶蚂,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,843評論 2 354

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

  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理,服務(wù)發(fā)現(xiàn)宣吱,斷路器窃这,智...
    卡卡羅2017閱讀 134,656評論 18 139
  • Swift1> Swift和OC的區(qū)別1.1> Swift沒有地址/指針的概念1.2> 泛型1.3> 類型嚴(yán)謹(jǐn) 對...
    cosWriter閱讀 11,101評論 1 32
  • Spring Web MVC Spring Web MVC 是包含在 Spring 框架中的 Web 框架,建立于...
    Hsinwong閱讀 22,399評論 1 92
  • 小榕居住的這座城市房價兩年內(nèi)漲得厲害征候。她也是一普通老百姓杭攻,也有“買漲不買跌的心理”,聽著周圍朋友們大談房價疤坝,而且還...
    美女多多閱讀 1,954評論 19 52
  • 今天早晨爸爸給我們買的飯我們吃飽了中午爸爸給我們做的飯我們吃飽飯又睡覺了我們睡醒醒了媽媽騎著電車子帶著我和弟弟兆解,我...
    付晨璨閱讀 125評論 0 0