C#委托和事件

C#委托和事件

1、理解委托和事件:委托是把一个方法作为一个参数放入另外一个方法中,也就是引用,事件是特殊的委托。

2、建立委托对象时,委托的参数类型必须与委托方法相对应,但在实际的操作中,我们无须用到 Invoke 方法,而只要直接使用myDelegate(string message),就能调用委托方法。

3、委托类继承于MulticastDelegate,并自动生成BeginInvokeEndInvokeInvoke 等三个常用方法。MulticastDelegate具有两个常用属性:MethodTarget

4、委托的协变与逆变。

5、泛型委托,泛型委托有着委托逆变的优点,同时可以使一个委托绑定多个不同类型参数的方法,而且在方法中不需要使用 is 进行类型判断,从而简化了代码。

6、事件(event)可被视作为一种特别的委托,它为委托对象隐式地建立起add_XXXremove_XXX 两个方法,用作注册与注销事件的处理方法。而且事件对应的变量成员将会被视为 private 变量,外界无法超越事件所在对象直接访问它们,这使事件具备良好的封装性,而且免除了add_XXXremove_XXX等繁琐的代码。

7、控件触发的也是事件。控件中存在很多个的事件,像ClickTextChangedSelectIndexChanged 等等,很多都是通过 EventHandler 委托绑定事件的处理方法的,EventHandler 可说是C#控件中最常见的委托 。

posted @ 2016-07-12 14:45  相约荞麦  Views(150)  Comments(0Edit  收藏  举报