C# 事件 和方法调用有什么区别呀
事件是不是在代码的某一个地方调用了委托,执行委托的方法。为什么不直接在要调用事件的地方调用方法呢?...
事件是不是在代码的某一个地方调用了委托,执行委托的方法。 为什么不直接在要调用事件的地方调用方法呢?
展开
5个回答
展开全部
一楼正解、我一个事件放在那边,触发这个事件后,有注册本事件的客户代码才做对应处理,没有的话就不需要。这样对于客户代码来说,需要这个事件,我就注册一下,不需要我就解除。就这么简单。LZ你现在碰到的情况大概是客户代码很少,可能只有一个需要注册事件,所以你觉得没必要用事件。但是如果客户代码多了的话。事件就很有用了。
举个例子,假设当狗叫的时候,王大妈就要去看看菜有没有被偷了,那么本例中,“狗叫”就相当于事件,“王大妈”就是客户代码。“看看菜是否被偷”就是事件处理回调(callback)、那楼主你是不是认为,当狗叫的时候,直接调用 【王大妈.看看菜被偷了没();】就可以了?因为这边只有王大妈需要知道“狗有没有叫”这条信息,没有其他人需要知道了,但如果有很多人需要在狗叫的时候做对应的事情,你就必须在“狗叫”的时候写上一堆堆的客户调用代码了。【一大爷.看看鸡被偷了没();】【二大爷.看看饭煮好了没();】... 一堆堆。这样,就变成了狗叫到时候,这些人必须做这些事情了。反之,如果王大妈,一大爷,二大爷都只是注册“狗叫”这个事件的话,那么他们可以随时解除事件关联,也就是说,狗照样叫,但这些大妈大爷们是否需要做他们的事情,是他们自己决定的。。。。。哎,就是这么个说明。不知道你看不看得懂啊。。坑爹了。。。
举个例子,假设当狗叫的时候,王大妈就要去看看菜有没有被偷了,那么本例中,“狗叫”就相当于事件,“王大妈”就是客户代码。“看看菜是否被偷”就是事件处理回调(callback)、那楼主你是不是认为,当狗叫的时候,直接调用 【王大妈.看看菜被偷了没();】就可以了?因为这边只有王大妈需要知道“狗有没有叫”这条信息,没有其他人需要知道了,但如果有很多人需要在狗叫的时候做对应的事情,你就必须在“狗叫”的时候写上一堆堆的客户调用代码了。【一大爷.看看鸡被偷了没();】【二大爷.看看饭煮好了没();】... 一堆堆。这样,就变成了狗叫到时候,这些人必须做这些事情了。反之,如果王大妈,一大爷,二大爷都只是注册“狗叫”这个事件的话,那么他们可以随时解除事件关联,也就是说,狗照样叫,但这些大妈大爷们是否需要做他们的事情,是他们自己决定的。。。。。哎,就是这么个说明。不知道你看不看得懂啊。。坑爹了。。。
展开全部
有点类似发布订阅模式,是否要执行委托方法、执行什么样的方法由客户代码负责,这样可以动态地添加、修改响应内容而不用修改调用事件的地方,否则需要用继函(不好)+虚函数,或者用函数指针(C#有吗,跟委托是一码事)。
整点专业的叫松耦合。
整点专业的叫松耦合。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
事件发生在方法的前面,像单击事件一样,方法是事件发生後的操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你更应该问问时间和委托有什么区别
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
假设有人写好了一个类,并编译成了dll文件,当你使用这个类时要怎样写事件呢
呵呵,能想明白吗?
呵呵,能想明白吗?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询