在使用事件处理程序和委托方法之间做出决定时,有哪些好的考虑因素?
例如,我选择委托方法选项来将功能实现推迟到另一个对象。我选择事件处理程序选项主要是为了让其他对象订阅更新。
但显然,正如您所看到的,这些都是非常粗略的标准。我在 Stackoverflow 上阅读了一些类似的问题,但它们针对的是非常具体的问题,而我对通用用法更感兴趣。
有什么输入吗?
谢谢。
如上所述,它将根据您的情况而有所不同。 Delegates
曾经要求你的逻辑有一个单独的方法来实现你的逻辑。这使得使用 aDelegate
难以证明是正确的。然而,Lambda Expressions
和Anonymous Methods
aDelegate
实际上变得非常有用,功能强大Type
,很容易证明。
Delegates
非常适合:
带有特殊代码的模板的概念概念Delegate
非常好。
Event Handler
当您寻找 a以在操纵Class
an 时提供某种形式的通知时,An将是理想的。Object
最常见的实现和最简单的示例是User Interface
. 每个Class
代表一个,并且其中的Control
每个都会有一个事件来指示何时进行更改。Control
Interface
AButton
它的全部目的是被点击;但是在单击它之前,您不需要它来执行或做任何事情。一个例子Event Handler
。
它们通常通过使用Delegate
. 推理是Delegate Object
封装一个方法,以便可以匿名调用它。AnEvent
是一种Class
允许客户端提供Delegate
在发生事件时应该调用的方法的方法Event
。
All an Event Handler
is, 是一个被调用到相关的过程Event
。这些Event Handlers
需要两个要素:
Delegate
Event
数据的类。所以在大多数情况下,它们是齐头并进的。
显然,您的问题没有提供太多细节,因此很难实际回答或磨练您的标准。
一些可以帮助您的网站:
这些都是重要的概念,因此理解它们非常重要。希望这有助于澄清一点。