欢迎光临
我们一直在努力

C#事件机制归纳(下)-.NET教程,C#语言

建站超值云服务器,限时71元/月

3.c#中预定义事件处理方式

学习事件,我觉得最不好理解的就是c#中预定义了事件,使我才开始学习事件时一头雾水。在查了些资料后,终于弄明白了一些,如下:

eventargs是包含事件数据的类的基类,用于传递事件的细节。

eventhandler是一个委托声明如下(其在.net类库中如下声明的)

public delegate void eventhandler( object sender , eventargs e )

所以,所有形如:

void 函娄名(object 参数名,eventargs 参数名);

的函数都可以作为control类的click事件响应方法了。如下面所定义的一个事件响应方法:

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

参数object sender表示引发事件的对象,(其实这里传递的是对象的引用,如果是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事件所对应的方法。注意方法的参数符合委托中的签名(既参数列表)。那我们怎么把这个方法和事件联系起来呢,请看下面的代码。

this.button1.click += new system.eventhandler(this.button1_click); (其实button1.click 为system.eventhandler委派的实例事件。与委派中委派实例委托给某一方法非常相似)

把this.button1_click方法绑定到this.button1.click事件。

4.事件的参数的使用。

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方法一执行,触发registerok事件

//registerok事件一触发,然后执行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;

}

}

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » C#事件机制归纳(下)-.NET教程,C#语言
分享到: 更多 (0)

相关推荐

  • 暂无文章