委托与事件的区别????? event会自动生成一个delegate变量和两个函数: add和remove,C#编译器用这两个方法支持+=和-=操作符,可以用ildasm看到。这种包装方法和property/field类似。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 事件是委托的一种特殊形式,它要求委托的返回值类型是void,即多路广播。我们自己定义的委托可以不表示事件,而只是代表方法的返回值类型和参数类型,在实例化该委托时传入方法名称,这样该委托的实例就可以表示相应的方法了。 我是楼主,这两天我看了一下。觉得最关键的一个是加上event关键字之后,那这个委托的实例在别的类中只能用+=或-=也就是别的类无权调用这个实例来实现委托链中的函数。是这样子吗? 还有一点是事件函数都是单向的,也就是返回void。如果不是同样的类型的委托就不能用event关键字。 qqchen79(知秋一叶 [MS MVP]) 的话我理解一部分,不过他肯定说到了关键之处,首先部分情况下委托与事件是都可以实现功能需求的,C#对于事件的定义是建立在委托的基础之上的,C#的编译器对于定义的事件“event会自动生成一个delegate变量和两个函数: add和remove,C#编译器用这两个方法支持+=和-=操作符,可以用ildasm看到。这种包装方法和property/field类似。---知秋一叶”这样使用起来更方便一些,能够提供设计时支持,利用event规范,最重要的能够和Win32的消息能够兼容(我的感觉) datatable Image导出EXCEL 串口通讯和数据比对问题! ComponentOne Studio for WinForms 稳定吗? 求助!2题C#新手题目 如何取得键盘是输入哪个键? 关于2008中制作office处理程序,发布后处理异常的奇怪问题 100分求够asp.net在线编辑器原代码一个 关于DropDownList的问题,弱弱问一下 下周要去中软面试,前辈们给我点建议吧 关于 SqlDataReader 操作数据库时的问题 求教ACCEPTCHANGES()的真正作用和含义?? ftp的实现
我们自己定义的委托可以不表示事件,而只是代表方法的返回值类型和参数类型,在实例化该委托时传入方法名称,这样该委托的实例就可以表示相应的方法了。
觉得最关键的一个是加上event关键字之后,那这个委托的实例在别的类中只能用+=或-=
也就是别的类无权调用这个实例来实现委托链中的函数。
是这样子吗?
“event会自动生成一个delegate变量和两个函数: add和remove,C#编译器用这两个方法支持+=和-=操作符,可以用ildasm看到。这种包装方法和property/field类似。---知秋一叶
”
这样使用起来更方便一些,能够提供设计时支持,利用event规范,最重要的能够和Win32的消息能够兼容(我的感觉)