委托与事件的理解

委托和事件的新理解:

委托关键字delegate, public delegate int MyDelegate(int x, int y); 委托只用声明一个函数长什么样子,委托只是一种协议,只要符合声明形式的函数,都可以被调用。委托也可以关联多个函数,随后调用委托时,就会调用所有与委托实例关联的方法。

事件的声明static event MyDelegate myEvent; 事件需要使用委托才能完成,是在委托的基础上,在某个时刻时机成熟使用委托进行调用执行函数。事件强调的是某时刻去使用委托。委托与事件区别,委托可以单独使用,委托的使用不存在某个特定时刻,随时调用委托,就能调用最终的执行函数。但是事件是需要建立在委托基础上,当某时刻去触发委托,完成一系列任务的整个过程成为事件。片面理解:事件包含委托。

关于为什么要使用委托间接调用函数,而不直接调用函数?
答:
1、为了安全性,MS自己开发的组件代码,不想让你知道具体实现函数,只给你这个函数的声明格式和该函数的功能,当你只知道这个方法的原型,但还不知道这个函数要执行什么样的动作,那么委托就可以帮到你。你可以定义一个委托,即方法原型,根据不同的条件执行不同的实际函数。
2、c#是强制类型安全的,一个运行域中如果想要调用另一个域中的方法,必须使用委托执行的方法。跨线程的调用方法和对象也是必须使用委托的。
记得以前有个人写了个类似比喻的方法,把引爆地雷比做一个方法,人不可以直接引爆地雷,要通过导火线才可以引爆,导火线就是委托。执行委托就是去执行一个方法的指针。
3、为了使团队工作更具有模块、分工明确、阶层层次分明。当完成一个大项目时,老板只用使用委托来模块的进行项目的整体运营,在具体委托需要使用的函数,就让小弟去干。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值