关于什么是及参考文献及事件方面的免费优秀学术论文范文,关于什么是类硕士论文格式,关于C#中的委托与事件相关论文范文检索,对写作什么是论文范文课题研究的大学硕士、本科毕业论文开题报告范文和文献综述及职称论文参考文献资料下载有帮助。
摘 要:在C#里,委托与事件类是两个不易理解的概念.主要阐述对委托与事件的理解,同时结合Observer设计模式与.NET Framework规范,针对生活中的案例来辨析委托与事件的应用.
关 键 词 :委托,事件Observer设计模式,.NET Framework
中图分类号:TP 文献标识码:A 文章编号:1672-3198(2010)06-0284-02
C#中的委托类似于C++中的函数指针,功能却更多.事件是在委托的基础上的一种结构,类似于委托的变量,在界面的控件中处处都有应用.
1.什么是委托
委托的申明格式:修饰符 delegate 返回值数据类型 委托名(形参列表).
例如:Delegate int AbcDel(string s, bool b),是一个委托申明,每一个委托都有自己的签名,就是说AbcDel这个委托有string 和bool类型的形参,返回一个int类型数据,即具有这样的函数签名.委托类似于函数指针,它能够引用函数,通过传递地址的机制完成.委托是一个类,当对它实例化时,要提供一个引用函数,将其作为它构造函数的参数.例如:private int AbcFun (string str, bool bln){},则可以把这个函数传给AbcDel的构造函数,因为它们签名一致.AbcDel sd 等于 new SomeDelegate(AbcFun),sd 引用了 AbcFun,也就是说,AbcFun已被sd所登记注册,如果你调用sd,AbcFun这个函数即会被调用.
2.事件的理解
事件的申明格式:修饰符 event 委托名 事件名,
例如:public event AbcDel Boil,//AbcDel为委托名
Boil事件的声明与之前委托变量sd的声明唯一的区别是多了event关键字.声明事件类似于声明一个委托类型的变量.
3.Observer设计模式
假设热水器系统由两部分组成:热水器、警报器,由不同厂商进行了组装.热水器仅负责烧水,警报器在水烧开时发出警报,当水温超过95度,就发出警报.我们需要应用委托与事件来模拟此过程.
Observer设计模式是为了定义对象间的一种一对多的依赖关系,以便于当一个对象的状态改变时,其他依赖于它的对象会被自动告知并更新.Observer模式是一种松耦合的设计模式.它包括两类对象:
Subject:监视对象,它包含其他对象感兴趣的内容.热水器是一个监视对象,它包含temprature字段,当它>95时,会不断把数据发给监视它的对象.
Observer:监视者,它监视Subject,当Subject中的某件事发生时,会告知Observer,Observer即采取相应行动.Observer就是警报器.
在本例中,事情发生的顺序如下:
警报器告诉热水器,它对它的温度感兴趣(注册).
热水器知道后保留对警报器的引用.
热水器进行烧水这一动作,当水温超过95度时,通过对警报器的引用,自动调用警报器的MakeAlert()方法.代