黑马程序员---委托和事件

 ---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

委托是希望能够调用一个函数,但是写程序的时候不用知道调用的是哪个函数,只要能传参数,这样我们只要取返回值就可以。委托保存的不是实际值,而是保存对存储在托管堆中的对象的引用。委托的特点:

1、委托类似于 C++ 函数指针,但它是类型安全的。它与指针区别:用委托就可以指向任意的函数,哪怕是之前没定义的都可以

2、委托允许将方法作为参数进行传递。

3、委托可用于定义回调方法。

4、委托可以链接在一起;例如,可以对一个事件调用多个方法。

声明委托的方式:delegate 返回值类型 委托类型名(参数)
C#代码:  delegate void StringProcess(string s);

声明的委托是一种类型,就像int、Person一样,如果要用的话还要声明委托类型的变量
声明委托类型变量的方式:StringProcess f1;
将委托类型变量指向函数还可以简化成StringProcess sp = SayHello,编译器帮我们进行了new。但是不能sp=PrintIt(),因为这样就成了“执行PrintIt函数,并且将sp指向PrintIt的返回值”。
 和直接调用函数的区别:用委托就可以指向任意的函数,哪怕是之前没定义的都可以,而不使用受限于那几种。

 

事件就是一个消息。在C#中称为事件,C#中处理事件是通过委托完成,必须先理解委托才能更好的理解事件。事件是一个特殊的委托类。事件的特点:

1、发行者确定何时引发事件,订户确定执行何种操作来响应该事件。

2、一个事件可以有多个订户。

3、一个订户可处理来自多个发行者的多个事件。

4、没有订户的事件永远不会被调用。

5、事件通常用于通知用户操作(如:图形用户界面中的按钮单击或菜单选择操作)。

6、如果一个事件有多个订户,当引发该事件时,会同步调用多个事件处理程序。

7、要异步调用事件,请参见使用异步方式调用同步方法。

8、可以利用事件同步线程

 

委托和事件没有可比性,因为委托是类型,事件是对象。 

---------------------- Windows Phone 7手机开发.Net培训、期待与您交流! ----------------------

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值