C#event 与 delegate的区别

C# in a nutshell 这本书讲的很清楚 我也是看了几遍才看到重点:
event对象 在拥有该对象的类内部可以把它当成和delegate一样的东西
只有在类外部使用这个event的时候才有所不同 只能使用它的+=和-=这两个运算符 不能使用任何方法去执行这个event的处理函数

简单来说event关键字把delegate原本的invoke函数 和函数式的括号调用 都变成它的拥有类的私有函数 外部任何类都不能直接通过invoke或者括号传参等方式调用这个event的处理函数
而delegate 无论它的拥有着还是其他任何类 都有全部的访问权限+= -=这些当然能用,直接invoke或者括号传参也能直接执行处理函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值