delegate event和event的区别

当前位置:
C#中的delegate和event
来源: 联系QQ: 作者: 佚名 来源: 网络 发布时间: 12/10/14
ate对象。5. 用+=操作符添加事件到事件队列中(-=操作符能够将事件从队列中删除)。6. 在需要触发事件的地方用调用delegate的方式写事件触发方法。一般来说,此方法应为protected访问限制,既不能以public方式调用,但可以被子类继承。名字是OnEventName。7. 在适当的地方调用事件触发方法触发事件。下面是一个简单的例子:using Spublic class EventTest{// 步骤1,定义delegate对象public delegate void MyEventHandler(object sender, System.EventArgs e);// 步骤2省略public class MyEventCls{// 步骤3,定义事件处理方法,它与delegate对象具有相同的参数和返回值类// 型public void MyEventFunc(object sender, System.EventArgs e){Console.WriteLine(&My event is ok!&);}}// 步骤4,用event关键字定义事件对象private event MyEventHprivate MyEventCpublic EventTest(){myecls = new MyEventCls();// 步骤5,用+=操作符将事件添加到队列中this.myevent += new MyEventHandler(myecls.MyEventFunc);}// 步骤6,以调用delegate的方式写事件触发函数protected void OnMyEvent(System.EventArgs e){if(myevent != null)myevent(this, e);}public void RaiseEvent(){EventArgs e = new EventArgs();// 步骤7,触发事件OnMyEvent(e);}public static void Main(){EventTest et = new EventTest();Console.Write(&Please input ''a'':&);string s = Console.ReadLine();if(s == &a&){et.RaiseEvent();}else{Console.WriteLine(&Error&);}}}输出结果如下,黑体为用户的输入:Please input ‘a’: aMy event is ok!小结通过上面的讨论,我们大体上明白了delegate和event的概念,以及如何在C#中使用它们。我个人认为,delegate在C#中是一个相当重要的概念,合理运用的话,可以使一些相当复杂的变得很简单。有时我甚至觉得,delegate甚至能够有指针的效果,除了不能直接访问物理地址。而且事件也是完全基于delegate来实现的。由于能力有限,本文只是对delegate和event的应用作了一个浅显的讨论,并不深入,我希望本文能够起到抛砖引玉的作用。真正想要对这两个概念有更深入的了解的话,还是推荐大家看MSDN。
上一篇资讯:
下一篇资讯:
文章排行榜delegate和event的区别
[问题点数:50分,结帖人lb520zw]
delegate和event的区别
[问题点数:50分,结帖人lb520zw]
不显示删除回复
显示所有回复
显示星级回复
显示得分回复
只显示楼主
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2016年4月 .NET技术大版内专家分月排行榜第三2016年2月 .NET技术大版内专家分月排行榜第三2015年10月 .NET技术大版内专家分月排行榜第三2015年9月 .NET技术大版内专家分月排行榜第三2015年7月 .NET技术大版内专家分月排行榜第三2015年6月 .NET技术大版内专家分月排行榜第三2015年5月 .NET技术大版内专家分月排行榜第三2015年4月 .NET技术大版内专家分月排行榜第三2014年12月 .NET技术大版内专家分月排行榜第三2014年10月 .NET技术大版内专家分月排行榜第三2014年9月 .NET技术大版内专家分月排行榜第三2014年1月 .NET技术大版内专家分月排行榜第三2013年12月 .NET技术大版内专家分月排行榜第三2013年10月 .NET技术大版内专家分月排行榜第三2013年5月 .NET技术大版内专家分月排行榜第三2011年9月 .NET技术大版内专家分月排行榜第三2011年2月 .NET技术大版内专家分月排行榜第三2010年2月 .NET技术大版内专家分月排行榜第三
2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2016年4月 .NET技术大版内专家分月排行榜第三2016年2月 .NET技术大版内专家分月排行榜第三2015年10月 .NET技术大版内专家分月排行榜第三2015年9月 .NET技术大版内专家分月排行榜第三2015年7月 .NET技术大版内专家分月排行榜第三2015年6月 .NET技术大版内专家分月排行榜第三2015年5月 .NET技术大版内专家分月排行榜第三2015年4月 .NET技术大版内专家分月排行榜第三2014年12月 .NET技术大版内专家分月排行榜第三2014年10月 .NET技术大版内专家分月排行榜第三2014年9月 .NET技术大版内专家分月排行榜第三2014年1月 .NET技术大版内专家分月排行榜第三2013年12月 .NET技术大版内专家分月排行榜第三2013年10月 .NET技术大版内专家分月排行榜第三2013年5月 .NET技术大版内专家分月排行榜第三2011年9月 .NET技术大版内专家分月排行榜第三2011年2月 .NET技术大版内专家分月排行榜第三2010年2月 .NET技术大版内专家分月排行榜第三
2013年 总版技术专家分年内排行榜第一
2014年 总版技术专家分年内排行榜第三
2016年3月 .NET技术大版内专家分月排行榜第二2016年1月 .NET技术大版内专家分月排行榜第二2015年12月 .NET技术大版内专家分月排行榜第二2015年2月 .NET技术大版内专家分月排行榜第二2015年1月 .NET技术大版内专家分月排行榜第二2014年11月 .NET技术大版内专家分月排行榜第二2014年5月 .NET技术大版内专家分月排行榜第二2014年4月 .NET技术大版内专家分月排行榜第二2012年2月 多媒体/设计/Flash/Silverlight 开发大版内专家分月排行榜第二
2016年4月 .NET技术大版内专家分月排行榜第三2016年2月 .NET技术大版内专家分月排行榜第三2015年10月 .NET技术大版内专家分月排行榜第三2015年9月 .NET技术大版内专家分月排行榜第三2015年7月 .NET技术大版内专家分月排行榜第三2015年6月 .NET技术大版内专家分月排行榜第三2015年5月 .NET技术大版内专家分月排行榜第三2015年4月 .NET技术大版内专家分月排行榜第三2014年12月 .NET技术大版内专家分月排行榜第三2014年10月 .NET技术大版内专家分月排行榜第三2014年9月 .NET技术大版内专家分月排行榜第三2014年1月 .NET技术大版内专家分月排行榜第三2013年12月 .NET技术大版内专家分月排行榜第三2013年10月 .NET技术大版内专家分月排行榜第三2013年5月 .NET技术大版内专家分月排行榜第三2011年9月 .NET技术大版内专家分月排行榜第三2011年2月 .NET技术大版内专家分月排行榜第三2010年2月 .NET技术大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。西西软件站/ 汇聚游戏软件最全的下载站!
您的位置: &>&&>&&>&
对C#中的委托、事件即delegate和event的一些个人心得
在C#中,所有的Type都是从Object派生而来,也就是说一切Type皆Object。如果,再抽象一个层次,可以把函数也看成Object,可以用函数名+参数+返回值来标识这个函数对象。把函数看成Object后,自然可以把函数作为成员、变量来用,甚至可以作为另一个函数的参数值、返回值!在C/C++中,用函数指针来实现这个功能。在C#中,为了类型安全,回避了指针。幸运的是,在C#中,有在语义上等价于函数指针的delegate类型。一个delegate实例可以引用一个函数。一旦把一个函数赋值给一个delegate,该delegate看起来就像是那个函数的替身。由此可见,不同语言仅仅用不同的语法阐述了相同的思想!《重构》一书中,有"封装字段"这个重构,这是一个非常简单、非常朴素、一点都不花哨的重构。但是,背后的思想非常深厚、深远、深邃。在C#中有Property来实现这个重构。没有它的话,我们可能要多写几行GetXXX()、SetXXX()了。如果,那个Field不是普通的字段,恰恰是个函数字段(即delegate实例)咋办?难道函数字段就能暴露了吗?!既然,你已经接受了它,就要好好对待它,千万别虐待它!同样,在C#中有event来实现。没有它的话,我们就又要多写几行AddXXX()、RemoveXXX()了!当你写下:public event EventHandler MyE就相当于,写了:private EventHandler _myEpublic event EventHandler MyEvent{ add { lock (this) { _myEvent +=} } remove { lock (this) { _myEvent -=} }}是不是,与Property有异曲同工之效?!相信,大家对event存在性的疑虑已经消除!另外,很多人疑惑"为啥只有+=、-=,而没有="。程序员很像木匠、瓦匠、漆匠、铁匠……,都是靠手艺吃饭的。在长期的劳动中,有些善于思考师傅就总结出一些经验。《重构》一书,就是马师傅总结出来的。他认为,要"封装集合",因为有好处!假设,event支持=,如果一个年少无知的client,到你那里=了一下,你好不容易挂到的2个太阳3个月亮1个星星就没了。
从正式工作以来一直做的都是基于B/S的Web开发,已经很长时间不研究C/S的东西了,但是受朋友的委托,帮他做一下拍照的这么个小功能。其实类似的代码网上有很多,但是真的能够拿来运行的估计也没几个。本来是说周末给做的,但是这两天脑子一直很乱,也没静下来,西西软件园-最安全的下载资讯站。
本文主要通过彩色图象灰度化来介绍C#处理数字图像的3种方法,Bitmap类、BitmapData类和Graphics类是C#处理图像的的3个重要的类。Bitmap只要用于处理由像素数据定义的图像的对象,主要方法和属性如下: Ge,西西软件园-最安全的下载资讯站。
说起.NET反编译,这里提起一下Visual Studio的垄断。Visual Studio占据了.NET开发工具系列的绝对垄断地位。在.NET 1.x时代,还有C# Builder,Delphi.NET来使用和体验,一争高低。可是到后来,.NET Framwork更新频繁,动辙在编译器级别,和语言层面做更新,这令第三方,西西软件园-最安全的下载资讯站。
Reflexil 它是Reflector的一个插件,结合Reflector,可以进行DLL代码注入等工作,实践证明完全可用,方便开发人员对.NET程序进行修改;可以作为一个Reflector插件修改程序集的IL并保存到磁盘文件,也可以在自己的.NET程序中调用进行更为灵活的.NET程序集修改。,西西软件园-最安全的下载资讯站。
用惯了VS来写C#代码,要是用记事本写会不会觉得很好玩,然后再CMD窗口下编译运行,当然写一些简单的Console代码还是可以这么玩玩的,如果你觉得打开VS太麻烦的话。 把后缀名改成.cs,test.cs。 打开cmd…,西西软件园-最安全的下载资讯站。
第一版 字符串计算 架构思路:第一版 命名空间 pute ―― 只是 BaseUtil 程序集 中的 一个子功能第一版 抽象思想:运算分为 运算符(IComputeSymbol + ComputeSymbolAttribute) + 函数(IComputeMethod + ComputeMethodAttribute)使用 常用的
接口,西西软件园-最安全的下载资讯站。
一 前言先来了解下操作XML所涉及到的几个类及之间的关系 如果大家发现少写了一些常用的方法,麻烦在评论中指出,我一定会补上的!谢谢大家* 1 XMLElement 主要是针对节点的一些属性进行操作* 2 XMLDocument 主要是针对节点的CUID操作* 3 XMLNode 为抽,西西软件园-最安全的下载资讯站。
周末和几个同学去了西涌露营,这么美丽的海滩不上传照片分享着实可惜,可是现在的相机拍出来的照片很大,特别是单反,而咱们的网络带宽又何其可怜,所以先压缩再上传会是非常好的选择,可是呢这么多张照片一张张压缩太麻烦了(鄙人对作图是小白,不懂得使用做图工具,西西软件园-最安全的下载资讯站。
ToString是在开发中最常用的操作,其作用是将其它类型以字符串类型表示。例如:int i=2;i.ToString() //”2″Object o = new Object();o.ToString(); // 返回对象类型 System.Object但是ToString也并非就这么简单。因为ToString实现自Object类,而Object类,西西软件园-最安全的下载资讯站。
ActiveX控件以前也叫做OLE控件,它是微软IE支持的一种软件组件或对象,可以将其插入到Web页面中,实现在浏览器端执行动态程序功能,以增强浏览器端的动态处理能力。通常ActiveX控件都是用C++或VB语言开发,本文介绍另一种方式,在.NET Framework平台上,使用C#语言,西西软件园-最安全的下载资讯站。
Copyright (C)
.All rights reserved.
蜀ICP备号-3基于DelegateEvent创建第一个IEvent对象
基于DelegateEvent创建第一个IEvent对象
15:29:00来源:
摘要: 继续和“事件即对象”打交道。我们之前提到过两个“趣味编程”:DelegateEvent与Functional Reactive Programming,现在我们在它们两者之间架起一座桥梁。也就是说,我们要从一个DelegateEvent对象创建一个IEvent对象出来。这样,您就可以把它作为第一个IEvent对象,继续尝试Functional Reactive Programming了。------------------------------------------------------------------------------------------------------------------------------本文链接: 作者博客:
网站导航: &&&&&&&&&&&&新闻频道: 推荐链接:Delegate-and-event 详细讲述C#中委托和事件的原理及用法!分为理解 , 由来, 和 的 CSharp C#编程 238万源代码下载-
&文件名称: Delegate-and-event
& & & & &&]
&&所属分类:
&&开发工具: C#
&&文件大小: 475 KB
&&上传时间:
&&下载次数: 9
&&提 供 者:
&详细说明:详细讲述C#中委托和事件的原理及用法!分为理解委托,事件的由来,事件和委托的用法!-A detailed account of the principle and usage of C# delegates and events! Divided into the understanding of the usage of the commission, the origin of the event, event and delegate!
文件列表(点击判断是否您需要的文件,如果是垃圾请在下面评价投诉):
&&Delegate and event.pdf
&近期下载过的用户:
&输入关键字,在本站238万海量源码库中尽情搜索:
&[] - A four level, round-robin arbiter WITH VHDL CODE
&[] - MIB浏览器 简单网络管理协议(SNMP:Simple Network Management Protocol)是由互联网工程任务组(IETF:Internet Engineering Task Force )定义的一套网络管理协议。该协议基于简单网关监视协议(SGMP:Simple Gateway
&[] - C# 开发jtag烧写arm CFI外置flash程序。
可成功烧入通过FPGA验证ARM的外置flash芯片。支持8位flash.
&[] - 基于UDP协议的网络通信工具,源代码采用C#语言编写,通信协议为UDP
&[] - 东软C#培训讲义 C# 基础知识 集合和泛型 面向对象编程 事件和委托 线程 异常处理 事业部C#编码规范}

我要回帖

更多关于 delegate event 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信