关于C#委托和事件的粗浅理解
第一次学习C#,老师一开始就要求学习委托和事件,一开始没有头绪,后来看了几篇教程和博客,渐渐有了一些自己的理解。如果还没有了解委托和事件的,推荐一篇很好很详细的博客
http://www.cnblogs.com/SkySoot/archive/2012/04/05/2433639.html
委托
首先,在我的理解当中,委托有点像一个C++中虚基类的应用或者指针,它可以指向它所派生出来的类的虚方法,并且根据派生类的不同,自然实现了多态。 而它与虚方法最大的不同,我认为就在于能够绑定多个委托,也就是多拖或者委托列表。而且它的扩展性非常好,也不需要继承这么麻烦,只需要函数的定义按照所要绑定的委托的形式就可以了
委托有一个需要注意的部分,就在于它第一次绑定要用 “=”, 而之后再新增绑定就要使用“+=”
事件
我认为,事件可以简单粗略的理解为一个委托类型的变量被封装了起来,当然这个封装的基础上,给这个变量增加了很多限制和很多功能,但是基本上就是委托类型所声明的一个变量了,从event的声明语句中,其实也可见一斑了。
这个封装很重要的一个作用就在于防止用户在客户端对委托变量就行随意的修改,限制用户的权限。需要特别注意的是,一个事件在被编译后,用于是private, 无论你的声明是private或者public的。