黑马程序员技术交流社区
标题:
C#中用委托有什么好处?事件是不是一种委托?
[打印本页]
作者:
吃肉的小浣熊
时间:
2013-5-16 21:46
标题:
C#中用委托有什么好处?事件是不是一种委托?
本帖最后由 吃肉的小浣熊 于 2013-5-19 13:47 编辑
C#中用委托有什么好处?事件是不是一种委托?
作者:
李礼彬
时间:
2013-5-17 01:15
使用委托使程序员可以将方法引用封装在委托对象内。然后可以将该委托对象传递给可调用所引用方法的代码,而不必在编译时知道将调用哪个方法。委托是面向对象,而且是类型安全的
事件就是一个狭义的委托,可以理解事件就是一个或多个委托,此话应该有误的吧,事件可以有多个事件处理函数,委托同样也可以是个多播委托
作者:
郑丹丹1990
时间:
2013-5-17 07:20
期待。。。。。。。。。。。
作者:
许大虾
时间:
2013-5-17 07:25
委托就是将方法作为一个参数带入别一个方法 就叫委托,
事件是一种委托
作者:
斩_梦
时间:
2013-5-17 11:21
委托我目前的理解在方法中传入一个方法,尤其是窗体之间传值的用到会比较多,事件也是一种委托,尤其是在多播委托的时候后面的委托事件会覆盖前面的事件,目前理解是这样的,希望对你有帮助。
作者:
周琪
时间:
2013-5-18 12:44
委托和事件就是来存方法的。事件是一种委托。
《不同点:1但事件只能在声明它的那个类或结构中被调用《不能在其他类中被调用》,而委托到处可以用。
2委托时类型,事件是成员。
3委托是由remove,add和一个私有委托组成的。所以你在用的时候委托只有两种用法:-=和+=。你可以拿反编译工具看下。
事件的声明必须要你声明一个委托或使用系统自定义的EventHandler.
<事件的参数必须和与它相关联的那个委托的的参数,返回值一致,系统>
委托的声明方式是: 访问修饰符 delegate 返回值 委托名(参数1,参数2。。) 如:public delegate void MyDel(string s);
事件的声明方式是:访问修饰符 Event 委托名 事件名; 如:public Event Mydel MyEvent;
作者:
周琪
时间:
2013-5-18 12:45
委托和事件就是来存方法的。事件是一种委托。
《不同点:1但事件只能在声明它的那个类或结构中被调用《不能在其他类中被调用》,而委托到处可以用。
2委托时类型,事件是成员。
3委托是由remove,add和一个私有委托组成的。所以你在用的时候委托只有两种用法:-=和+=。你可以拿反编译工具看下。
事件的声明必须要你声明一个委托或使用系统自定义的EventHandler.
<事件的参数必须和与它相关联的那个委托的的参数,返回值一致,系统>
委托的声明方式是: 访问修饰符 delegate 返回值 委托名(参数1,参数2。。) 如:public delegate void MyDel(string s);
事件的声明方式是:访问修饰符 Event 委托名 事件名; 如:public Event Mydel MyEvent;
作者:
王朋
时间:
2013-5-19 12:23
委托可以把一个方法作为参数代入另一个方法。
委托可以理解为指向一个函数的指针。
委托和事件没有可比性,因为委托是类型,事件是对象,下面说的是委托的对象(用委托方式实现的事件)和(标准的event方式实现)事件的区别。事件的内部是用委托实现的。因为对于事件来讲,外部只能“注册自己+=、注销自己-=”,外界不可以注销其他的注册者,外界不可以主动触发事件,因此如果用Delegate就没法进行上面的控制,因此诞生了事件这种语法。事件是用来阉割委托实例的,类比用一个自定义类阉割List。事件只能add、remove自己,不能赋值。事件只能+=、-=,不能= 。加分的补充回答:事件内部就是一个private的委托和add、remove两个方法
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2