各位高手能不能帮小弟解释一下在C#中为什么使用委托和事件?

来源:百度知道 编辑:UC知道 时间:2024/05/21 10:12:45
越详细越好.最好能举例说明,谢谢

在托管代码中不使用指针,因为指针在可驾驭它的人手中是倚天剑,否则就是麻大烦。
对象的基本特点是封装性,即包含完整的属性和行为,行为就是程序。有些类的对象是需要和用户交互的,比如按钮Button,在.NET类库中,默认的Button对象可以在用户单击它的时候,执行一些行为,比如界面上有一个凹进然后弹起的效果——这些也是必须用程序实现的。
然而对于程序员,这样的Button没有任何意义,必须要在用户单击的时候还能执行程序员定义的代码才行,比如按下一个“连接”按钮时,程序员编程序访问数据库。
这样就要在按钮被单击时执行两套程序,一套是默认的,一套是程序员自定义的——有一万个程序员使用Button,就可能会有一万种自定义。怎样才能做到这点呢?默认程序执行完时,还不知道要交给哪个程序去执行。
C语言时代有指向函数的指针可以解决这个问题,默认的Button只是定义一个指针,当默认的程序执行完后就执行这个指针指向的函数,这样就可以给程序员们用啦:每个程序员只要自己编一个函数,然后让这个指针指向自己的函数就可以啦。
前面说过,托管代码不使用指针,而是使用委托,委托是什么?就是函数指针。
好了不写了,比写程序还累。