标签:
1、理解委托和事件:委托是把一个方法作为一个参数放入另外一个方法中,也就是引用,事件是特殊的委托。
2、建立委托对象时,委托的参数类型必须与委托方法相对应,但在实际的操作中,我们无须用到 Invoke 方法,而只要直接使用myDelegate(string message),就能调用委托方法。
3、委托类继承于MulticastDelegate,并自动生成BeginInvoke、EndInvoke、Invoke 等三个常用方法。MulticastDelegate具有两个常用属性:Method、Target。
4、委托的协变与逆变。
5、泛型委托,泛型委托有着委托逆变的优点,同时可以使一个委托绑定多个不同类型参数的方法,而且在方法中不需要使用 is 进行类型判断,从而简化了代码。
6、事件(event)可被视作为一种特别的委托,它为委托对象隐式地建立起add_XXX、remove_XXX 两个方法,用作注册与注销事件的处理方法。而且事件对应的变量成员将会被视为 private 变量,外界无法超越事件所在对象直接访问它们,这使事件具备良好的封装性,而且免除了add_XXX、remove_XXX等繁琐的代码。
7、控件触发的也是事件。控件中存在很多个的事件,像Click、TextChanged、SelectIndexChanged 等等,很多都是通过 EventHandler 委托绑定事件的处理方法的,EventHandler 可说是C#控件中最常见的委托 。
标签:
原文地址:http://www.cnblogs.com/xiangyueqiaomai/p/5663511.html