使用.NET如何向初学者解释事件?
我看过的大部分介绍书都谈到了WinForms应用程序,双击设计器中的按钮,中提琴你有一个事件。
我不喜欢它,因为它没有解释幕后发生的事情或链接事件等更复杂的事情。
有没有更好的方法来解释事件以及我应该添加什么(例如链接,代理等...)?
答案 0 :(得分:7)
有一篇好文章here。它以“事件是一种机制,通过该机制,当某些事情发生时类可以通知其客户端。例如,当您单击按钮时,按钮单击事件通知将发送到托管该按钮的窗口。”我认为这很好地解释了事情。
答案 1 :(得分:5)
如果您正在寻找真实世界的例子,您可以使用Twitter / RSS等。
e.g。您在Twitter上发布内容,任何订阅您的Feed的人都会看到帖子。
一个对象引发一个事件(= twitter post),处理该事件(= twitter subscribe)的任何方法都会执行。
然后,您可以讨论如何设置处理程序(订阅帐户)为什么您应该取消订阅以及所有与Twitter相关的内容。
答案 2 :(得分:2)
像: 事件是“可能与之关注”的消息“发生了某些事情”(f.i.点击按钮或计时器已经过去)。使用“处理程序”,您可以对该事件做出反应。 您可以订阅一个事件,以便在该事件发生时调用您的处理程序。多个类可以订阅单个事件。
答案 3 :(得分:1)
事件就像一个字符串拉动设备。任何有兴趣的人都可以将字符串附加到设备上。当某些特定事件发生时,设备将拉动琴弦,以便任何被捕者都会发出信号表明它已经发生。
:)
答案 4 :(得分:0)
事件是从对象发送的信号,用于通知外部世界已发生或即将发生的事件(事件)。它为对象提供了一种机制来进行通信,而无需知道谁在听(或者是否有人在听)。
答案 5 :(得分:0)
事件是提升广播的对象:
打个比方: 想想井上的警报灯是否有高水位。
C#: 这是System.Windows.Forms.Button.Click事件
代表附加到此活动,他们关心此事件何时发生。
类比: 他们就像维护人员,但也许不是来自下一个城镇的人。
C#: 这是您的代码中“在Click发生时执行某些操作”的方法。您首先使用myButton.Click += new EventHandler( myButton_Click )
“关注此事件”。工人就是方法myButton_Click( Object sender, EventArgs e )
本身。多个工人方法可能“关心”同一事件。
答案 6 :(得分:0)
答案 7 :(得分:0)
在Delphi中 - 我添加/定义并实现了额外的事件处理程序,因为我在60年代长大,我称之为“ Happenings ”。 我认为这个词比“事件”描述得更好。所以类比运行“发生的事情”大部分都没有计划它们刚刚发生 - 你通常不会将它们作为预定义程序执行路径的一部分进行编码 - 你必须等待它们发生。
参与或邀请您必须拥有合适的联系人。并将自己添加到Happening通知列表(通过对象的事件方法)是一种确保你成为发生事件的一种方式...或者“在这个对象上发生了一个正在发生的事情” - 你想要吗?参与与否。如果您想参与通知您的联系人,那么您可以去参加聚会:))
只是我轻松的两个问题:))
答案 8 :(得分:0)
事件的琐碎用法,例如大多数示例中的事件,可以替换为不使用事件和/或涉及与某种黑盒子界面(System.Web.Page等)交互的实现。 / p>
如果您真的想要教某些事件,请找一个他们既是事件的制作者又是消费者的场景,并且这些事件比函数/方法调用提供了实质性的好处。如果你想了解事件,你不仅要掌握他们的所作所为,还要了解他们可以利用的地方。