仍然有理解ASP.NET事件的问题.他们有什么意义?

Jas*_*son 3 asp.net events event-handling

也许我很慢,但我不明白为什么你会使用一个非实际动作(如点击)的事件.当你可以调用方法时,为什么要经历创建委托和事件的繁琐?看起来当你创建一个事件时,你正在做的就是为调用者创建一种方法来通过一些复杂的过程来调用一个简单的方法.来电者必须自己举办活动!我不明白.

或者也许我只是没有理解这个概念.我需要类似事件OnClick和与控件的交互,但是对于类来说呢?我尝试为我的一个类实现事件,比如,当项目的来源发生变化时,但很快意识到没有意义,因为每当我想要执行某个操作而不是创建事件时我就可以调用方法,提出一个事件,并编写一个事件处理程序.另外,我可以重用我的方法,而我不一定能重用我的事件处理程序.

有人请我直截了当.我觉得我在这里错了,我想纠正.我提出的最后一个问题并没有真正得到任何有用的答案.

谢谢.

Mat*_*nes 9

我一直都喜欢广播电台的比喻.

当一个广播电台想要播放某些内容时,它就会将其发送出去.它不需要知道是否有任何人在那里听.您的收音机能够通过无线电台注册(通过拨入表盘),所有无线电台广播(我们的小隐喻中的事件)都由收音机接收,并将其转换为声音.

没有这种注册(或事件)机制.无线电台必须依次联系每个无线电广播并询问是否需要广播,如果您的电台说是,则直接向其发送信号.

您的代码可能遵循非常类似的范例,其中一个类执行操作,但该类可能不知道,或者可能不想知道谁会关心,或者对该操作采取行动.因此,它为任何对象提供了一种注册或取消注册自身的方法,以便通知操作已发生.

  • +1用于提供易于理解,技术性较差的解释.我没有听过这种方式,但它是一个很好的方式. (2认同)