事件机制归纳上计划

机床2021年09月06日

晨报王歧丰 1.委派的实现过程。

首先来看一下委派,委派其实就是方法的传递,并不定义方法的实现。事件其实就是标准化了的委派,为了事件处理过程特制的、稍微专业化一点的组播委派(多点委派)。下面举一个例子,我觉得把委派的例子和事件的例子比较,会比较容易理解。

using System;

class Class1

{

delegate int MathOp(int i1,int i2);

static void Main(string[] args)

{

MathOp op1=new MathOp(Add);

MathOp op2=new MathOp(Multiply);

iteLine(op1(100,200));

iteLine(op2(100,200));

adLine();

}

public static int Add(int i1,int i2)

{

return i1+i2;

}

public static int Multiply(int i1,int i2)

{

return i1*i2;

}

}

首先代码定义了一个委托MathOp,其签名匹配与两个函数Add()和Multiply()的签名(也就是其带的参数类型数量相同):

delegate int MathOp(int i1,int i2);

Main()中代码首先使用新的委托类型声明一个变量,并且初始化委托变量.注意,声明时的参数只要使用委托传递的函数的函数名,而不加括号:

MathOp op1=new MathOp(Add);

(或为MathOp op1=new MathOp(Multiply);)

委托传递的函数的函数体:

public static int Add(int i1,int i2)

{

return i1+i2;

}

public static int Multiply(int i1,int i2)

{

return i1*i2;

}

然后把委托变量看作是一个函数名,将参数传递给函数。 iteLine(op1(100,200));

iteLine(op2(100,200));

2.事件的实现过程

[下一页]using System;

class Class1

{

static void Main(string[] args)

{

Student s1=new Student();

Student s2=new Student();

gisterOK +=new legateRegisterOkEvent(Student_RegisterOK);

gisterOK +=new legateRegisterOkEvent(Student_RegisterOK);

gister();

gister();

adLine();

}

static void Student_RegisterOK()

{

iteLine(\"Hello\");

}

}

class Student

{

public delegate void DelegateRegisterOkEvent();

public event DelegateRegisterOkEvent RegisterOK;

public string Name;

public void Register()

{

iteLine(\"Register Method\");

RegisterOK();

}

}

在Student类中,先声明了委托DelegateRegisterOkEvent(),然后使用event和要使用的委托类型(前面定义的DelegateRegisterOkEvent委托类型)声明事件RegisterOK(可以看作是委托的一个实例。):

public delegate void DelegateRegisterOkEvent();

public event DelegateRegisterOkEvent RegisterOK;

然后在Main()函数中,实例化Student类,然后gisterOK事件委托给了Student_RegisterOK 方法。通过“+=”(加等于)操作符非常容易地为.Net对象中的一个事件添加一个甚至多个响应方法;还可以通过非常简单的“-=”(减等于)操作符取消这些响应方法。

然后,当调用gister()时,事件gisterOK发生。

长沙治疗宫颈糜烂费用
银川白癜风
一品红
相关阅读
到底最火发型100款,想清爽利落,赶快挑一款吧

Hello,大家好,很高兴现今又为大家产生了,最近最高雅最火的风行衣著100多...

2024-12-24
遵义第一波消费券几分钟内全部抢完!未来三周还有三波

封面新闻业 易弋力 “奔到唯600元减200元的大额券去的,最后抢夺了唯50元减...

2024-12-13
哈佛代理校长2022年毕业演讲:带着激情和热情去拥抱未知世界!

全文高约 2700 字,阅读大约需要 4 分钟 本文转载自归国辞书(ID:Liuxuezidian...

2024-11-12
肯豆的衣品真是“卡戴珊家之最”,漂亮有型,身材挑不出毛病

分享最当今的风尚外套搭上,让你在四季都能美显现出来见习更是让人,女人...

2024-11-03
亲爸带娃想没用,给娃制作了一个“简易秋千”火了,网友:厉害了

宝爸随身携带特里,只不过天生随身携送去一股粗犷气质,颇高宝妈随身携带...

2024-10-11
到群众最需的地方去

4月初17日,苏州徐汇法院邻里法官王宏霞早早整天,7点多给定后开始了当天...

2024-09-15
友情链接