黑马程序员技术交流社区
标题:
委托和事件的区别具体体现在什么地方,有点懵了????
[打印本页]
作者:
赵威
时间:
2013-4-24 16:25
标题:
委托和事件的区别具体体现在什么地方,有点懵了????
本帖最后由 赵威 于 2013-4-25 16:47 编辑
回头看了看委托和事件的区别,感觉做了几个题之后,用事件实现的,用委托都能做,二者的区别在哪啊?既然可以用委托去模拟事件,那要事件到底有什么用处?
求高手帮忙解答
作者:
asi6611633
时间:
2013-4-24 16:32
委托可以用=对委托字段赋值,如果声明一个public的委托字段,在外部可以对其修改,这是我们不愿意看到的
事件可以说是封装好的委托字段,外部只能通过+=和-=来注册注销,
可以尝试定义一个private委托字段,然后对外开放它的Add和Remove方法,到了这里差不多就明白事件和委托的区别了
作者:
mdl
时间:
2013-4-24 22:31
正如你看到的,委托和事件的定义只差一个关键字:event,这是C#语言的语法规则,我们知道就行了,但不得不说只是知道语法规则还是不行的,这里我不会多说,只解释一点:事件是你的系统事先定义好的(注意是事件,而不是委托),当你点击按钮时,就会执行事件处理程序。但假如系统事先定义好的是委托,那么当你点击按钮时,这个方法就不会执行。当你在写一个控制台程序时事件和委托的差别是表现不出来的,只有写winform等程序时才可以表现出来
作者:
崔宏奎
时间:
2013-4-24 23:20
其实就是保护性质的,和属性差不多 public int Age{set;get;}
事件就是一个公有的委托,而且只允许 +=和 -=
public event EventHandler hander;
就可以和限制属性的 set{} get{}那样,自己添加add{} remove{}的处理过程啦~~
作者:
苏波
时间:
2013-4-25 10:24
委托其实是最事件加以的限制,事件就是一个私有委托和两个方法ADD和Remove,比方说声明一个委托,可以到处使用,而声明一个事件只能在该类中使用,这是委托和事件的主要区别,其实二者是一回事,只是事件是对委托加以限制了
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2