guanqq
寻找沙漠绿洲

导航

统计
公告
 

2009年4月27日

委托其实挺简单的,好多人把它搞复杂了。

1.首先,有一堆长的相似的方法

Code

 我们看的出来,这几个方法长的极为相似:(1)他们都没有返回值。(2)他们的两个参数都是int型的。(3)内容上,他们都是对数字的处理。

可是,如果要求我们老是对两个数字进行加减乘除操作,我们就得不停地调用这四个方法,好烦。正在此时,委托出场了。委托对于方法,有一种提纲挈领的作用,因此它的出场,就是抓住了这几个方法的共同点。

2.委托的出场

//定义一个处理数字的委托
public delegate void CopeWithNumber(int num1, int num2);

delegate是一个关键字,表示定义委托,void表示没有返回值,int num1,int num2表示输入参数都是int型的。可以看得出来,这个委托和方法长的特别像。这种像只是形似,而本质不同。但是在实际应用中,我们没有必要太在乎这个,现在方法有了,委托也有了,并且长的这么像,他们之间肯定有某种联系,通过这种联系,就可以调用方法了……

3.增加联系,调用方法

Code

我们可以看到,新建一个委托对象,将方法加入到委托的对象中,然后通过一句:copeWithNumber(2,3),就可以实现对2,3的加减乘除,无论在什么地方,只要用copeWithNumber(2,3)就行了,而没有必要每次去调用那四个方法。

这就是委托的皮毛,但是理解的这个皮毛,再去看委托复杂的例子,包括泛型委托,也不是那么可怕。万事开头难,后来会越来越好的。

posted @ 2009-04-27 10:56 沙漠之驼 阅读(143) 评论(5) 编辑