日期:2014-05-17  浏览次数:20841 次

C#中自事件的一些疑问?请知情都讨论一下
在C#中有自定义事件这一说,我自己也使用过,感觉能用自定义事件处理的代码段都能通过调用方法的方式来实现,但是又为什么有自定义事件呢?使用自定义事件有什么好处,或者是在什么时候使用自定义事件更合适呢?

------解决方案--------------------
google下Observer观察者模式
------解决方案--------------------
比方和其他实例进行互动,如用event的话,你就要互相知道对方才行,这怎么可以呢
------解决方案--------------------
"为什么有自定义事件呢?"
自定义事件的主要目的不是为了执行一段代码,而是为了让订阅它的那些订阅者知道是时候做些什么了。你可以订阅与退订某个事件。把具体需要执行的东西留给它的订阅者去考虑。
而某个方法是为了执行一段代码,如果你需要做一些另外的事情,你还需要去修改它。

"使用自定义事件有什么好处,或者是在什么时候使用自定义事件更合适呢?"
提高了代码灵活性和可扩展性。
我给你举2个适合用自定义事件的例子:
1. 比如说我有一个主要的功能模块,在每一次执行过程中都要经过几个重要步骤。我们可以在几个关键点上建立几个事件,比如说startxxxing, xxxed等等。在后续开发的过程中我们不需要去修改之前的主要功能模块,在外围的代码模块中就可以很容易去捕捉到代码你的主要功能模块执行的状态,并做一些诸如记录之类的工作。
2. 窗口界面上的控件事件。我们也可以自定义。



------解决方案--------------------
http://bbs.csdn.net/topics/390585160
http://bbs.csdn.net/topics/360035363
------解决方案--------------------
事件的前身其实就是消息,不过它能够自定义事件的拥有者和响应者。自己发送和接收消息。通过事件的订阅关系,当事件发生时,相应的事件处理器就会被调用。