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

首頁 > 學(xué)院 > 開發(fā)設(shè)計(jì) > 正文

初學(xué)筆記(C#事件)

2019-11-17 02:53:52
字體:
供稿:網(wǎng)友

初學(xué)筆記(C#事件)

1.聲明事件

EventHandler是一個(gè)預(yù)定義的委托,它定義了一個(gè)無返回值的方法。在 .Net Fromwork中,他的格式:

public delegate voidEventHandler (Object sender, EvenArgs e)

其中sender的類型為Object,表示時(shí)間發(fā)布者本身,e用來傳遞事件的相關(guān)信息,數(shù)據(jù)類型為EvenArgs及其派生類。

標(biāo)準(zhǔn)的EvenArgs并不包含任何事件數(shù)據(jù), 因此EventHandler專用于表示不生成數(shù)據(jù)的事件的事件方法。如果要事件生成數(shù)據(jù),則必須提供自定義的事件類型,該類型從EventArgs派生,提供保存時(shí)間數(shù)據(jù)所需要的全部字段或?qū)傩裕@樣時(shí)間發(fā)布者可以將特定的數(shù)據(jù)發(fā)送給接收者。

用標(biāo)準(zhǔn)的EventHandler委托可以聲明不包含數(shù)據(jù)的標(biāo)準(zhǔn)事件:

public event EvenHandler 事件名;

要生成包含數(shù)據(jù)的事件,必須先自定義事件數(shù)據(jù)類型,有兩種:

(1)先定義委托,再定義事件。

public class 事件數(shù)據(jù)類型 : EventArgs {//封裝信息;}

public delegate 返回值類型 委托類型名 (Object sender, 事件數(shù)據(jù)類型 e);

public event 委托類型 事件名;

(2)使用泛型EventHandler定義事件。

public class 時(shí)間數(shù)據(jù)類型 : EventArgs {//封裝信息;}

public event EventHandler<時(shí)間數(shù)據(jù)類型>事件名

2.訂閱事件

聲明事件的實(shí)質(zhì)是定義一個(gè)數(shù)據(jù)變量,并不意味著就能成功觸發(fā)事件,還要:(1)在事件的接收者中定義一個(gè)方法來響應(yīng)時(shí)間,(2)通過創(chuàng)建委托對象把事件與事件方法聯(lián)系起來(又稱綁定事件或訂閱事件)。負(fù)責(zé)綁定事件與事件方法的類就稱為時(shí)間的訂閱者。

事件名+= new 事件委托名(事件方法);

注意:

(1)訂閱事件的操作由事件的接收者實(shí)現(xiàn)。

(2)每個(gè)事件都可以有多個(gè)處理程序,多個(gè)程序按順序調(diào)用。如果一個(gè)處理程序發(fā)生異常,還未處理的程序則沒有機(jī)會(huì)接受事件。為此,建議事件處理程序迅速處理事件,并避免發(fā)生異常。

(3)訂閱事件必須見一個(gè)與事件具有相同類型的委托對象,把事件方法當(dāng)作委托目標(biāo),使用“+=”運(yùn)算符把事件方法添加到源對象的事件中。

(4)若要取消訂閱事件,可使用“-=”。

3.觸發(fā)事件

在C#中,觸發(fā)事件與委托點(diǎn)用相同,但要注意使用匹配的事件參數(shù)。事件一旦觸發(fā),相應(yīng)的事件方法就會(huì)被調(diào)用,如果該事件沒有任何處理程序,則該事件為空。

4.總結(jié):

第一步:定義相關(guān)信息類;

第二步:定義事件警報(bào)器;

第三步:聲明事件產(chǎn)生時(shí)調(diào)用的方法;

第四步:訂閱事件;

第五步:觸發(fā)事件;

5.采用基于事件驅(qū)動(dòng)模型進(jìn)行程序設(shè)計(jì),其實(shí)過程包括五部分:

(1)定義事件相關(guān)信息類;

(2)在事件發(fā)布者類(事件源)中聲明事件,并聲明一個(gè)負(fù)責(zé)觸發(fā)事件的方法;

(3)在事件接受者類中聲明事件產(chǎn)生時(shí)調(diào)用的方法;

(4)在事件接受者類中訂閱事件;

(5)在事件接收者類中觸發(fā)事件。

初學(xué)筆記還望大家多多指點(diǎn)!!!


發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 纳雍县| 五台县| 旺苍县| 土默特左旗| 黄冈市| 溆浦县| 洪洞县| 宜章县| 南丰县| 会昌县| 樟树市| 锡林浩特市| 三台县| 白沙| 平塘县| 上饶县| 南昌市| 普洱| 柘荣县| 乡宁县| 资阳市| 克什克腾旗| 商洛市| 平江县| 河北区| 米易县| 金秀| 额济纳旗| 嘉兴市| 花垣县| 监利县| 邵阳县| 庆元县| 烟台市| 万载县| 盐津县| 韩城市| 长治县| 兴国县| 溆浦县| 郯城县|