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

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

委托與事件的關系

2019-11-17 03:21:47
字體:
來源:轉載
供稿:網友

委托與事件的關系

說道"委托"這個詞我們肯定都不會陌生吧,生活中"委托"就是請別人幫我們做事。

程序中也是如此,委托機制是.Net中特有的,我們可以將方法作為參數傳給委托,讓委托幫我調用執行方法。

先來看看委托是如何定義的:

[訪問修飾符] delegate 返回值 委托名([參數]);

委托類似于C/C++中的函數指針,但是它們又有一些區別,并不是完全等價的。

說到指針,很多人肯定又暈,指針其實就是地址,而函數指針就是函數的地址或者說函數的入口,這樣說相信我們會好理解一點。

委托是一種類型,可以存儲多個方法的列表,而函數指針只能存儲一個函數的指針,除非使用指針數組才可以存儲多個函數的指針。

好了,言歸正傳。下面我們來看看事件是什么玩意?

我們定義一個事件是使用event關鍵字,其實事件就是委托類型變量,這是不是出乎很多人的意料?

event關鍵字主要是為了限制我們在外部調用委托,只允許在類內部調用委托,并且只能通過+=和-=來追加移除方法。

下面我們定義一個事件:

public event void MyDelegate dele;

然后我們通過Reflecator反編譯可以看到:

事件的本質其實就是一個私有委托和兩個方法(add和remove方法)

有點類似字段和屬性,事件就是在類內部對委托進行了封裝。

所以說事件其實一個閹割后的委托。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 怀远县| 额济纳旗| 潜山县| 沙雅县| 永兴县| 化德县| 景宁| 木兰县| 翼城县| 泰来县| 兴业县| 东乌| 商丘市| 华坪县| 安塞县| 河间市| 玉环县| 南皮县| 盐津县| 高密市| 乐清市| 天全县| 那坡县| 齐河县| 广平县| 永川市| 娄烦县| 合山市| 安康市| 安图县| 石棉县| 澄江县| 石家庄市| 蓝山县| 修武县| 吉安县| 五寨县| 临安市| 涟源市| 府谷县| 大田县|