委托与事件区别

本文深入探讨了委托和事件在.NET编程中的区别。委托可视为函数指针,允许将方法作为参数传递。事件是委托的特殊形式,用于在类之间安全地传递信息,仅限于注册和注销,确保类的封装性。在类内使用委托,类间通信则利用事件,以维持良好的设计原则。
摘要由CSDN通过智能技术生成

总览

序号区别委托事件
1赋值方式=或+=+=
2调用范围类内+类外类内
3是否为类型

具体分析

1.委托可以把一个方法作为参数代入另一个方法。 委托可以理解为函数指针。
2.委托和事件没有可比性,因为委托是类型,事件是对象,委托实例才是对象。
3.其实事件是委托实例的特殊情况,加了event(事件)修饰之后,委托就被阉割了,假设这个加了修饰符的事件称为事件1,事件只能注册与注销,不可在类外调用。

委托实例与事件区别

委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。

事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。

事件是用来阉割委托实例的,类比用一个自定义类阉割List。事件只能add、remove自己,不能赋值。事件只能+=、-=,不能= 。事件内部就是一个private的委托和add、remove两个方法。

总结

从面向对象来说,从设计角度来看委托与事件:类内使用委托,类之间使用事件,保证类的封装
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值