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

首頁 > 開發(fā) > 綜合 > 正文

C#事件機制歸納(下)

2024-07-21 02:19:34
字體:
來源:轉載
供稿:網(wǎng)友
3.c#中預定義事件處理方式

學習事件,我覺得最不好理解的就是c#中預定義了事件,使我才開始學習事件時一頭霧水。在查了些資料后,終于弄明白了一些,如下:

eventargs是包含事件數(shù)據(jù)的類的基類,用于傳遞事件的細節(jié)。

eventhandler是一個委托聲明如下(其在.net類庫中如下聲明的)

public delegate void eventhandler( object sender , eventargs e )
所以,所有形如:

void 函婁名(object 參數(shù)名,eventargs 參數(shù)名);

的函數(shù)都可以作為control類的click事件響應方法了。如下面所定義的一個事件響應方法:

private void button1_click(object sender, system.eventargs e)

參數(shù)object sender表示引發(fā)事件的對象,(其實這里傳遞的是對象的引用,如果是button1的click事件則sender就是button1)system.eventargs e 代表事件的相應信息,如鼠標的x,y值等。

下面我們研究一下button類看看其中的事件聲明,以click事件為例。

public event eventhandler click;

這里定義了一個eventhandler類型的事件click
private void button1_click(object sender, system.eventargs e)
{
...
}
這是我們和button1_click事件所對應的方法。注意方法的參數(shù)符合委托中的簽名(既參數(shù)列表)。那我們怎么把這個方法和事件聯(lián)系起來呢,請看下面的代碼。
this.button1.click += new system.eventhandler(this.button1_click); (其實button1.click 為system.eventhandler委派的實例事件。與委派中委派實例委托給某一方法非常相似)
把this.button1_click方法綁定到this.button1.click事件。





4.事件的參數(shù)的使用。

using system;



class class1

{

static void main()

{

student s1=new student();

s1.name ="student1";

student s2=new student();

s2.name ="student2";

s1.registerok +=new student.delegateregisterokevent(student_registerok);

s2.registerok +=new student.delegateregisterokevent(student_registerok);



//當register方法一執(zhí)行,觸發(fā)registerok事件

//registerok事件一觸發(fā),然后執(zhí)行student_registerok方法

s1.register();

s2.register();

console.readline();

}

static void student_registerok(registerokargs e)

{

console.writeline(e.eventinfo);

}

}



class student

{

public delegate void delegateregisterokevent(registerokargs e);

public event delegateregisterokevent registerok;

public string name;

public void register()

{

console.writeline("register method");

registerok(new registerokargs("student name: "+name));

}

}

class registerokargs:eventargs

{

public string eventinfo;

public registerokargs(string eventinfo):base()

{

this.eventinfo =eventinfo;

}

}



發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 潮安县| 沙雅县| 五指山市| 古蔺县| 岳池县| 河间市| 梧州市| 宜宾市| 博兴县| 盱眙县| 漠河县| 玉环县| 石景山区| 鄂尔多斯市| 汝南县| 灌南县| 曲水县| 绥滨县| 巧家县| 利川市| 曲麻莱县| 常州市| 张家港市| 邵东县| 云阳县| 威信县| 沙坪坝区| 长阳| 德令哈市| 鹤峰县| 通州区| 汉源县| 和平区| 新郑市| 景洪市| 工布江达县| 铁岭市| 新巴尔虎右旗| 汝南县| 五寨县| 潼关县|