C#委托与事件处理程序

时间:2013-02-08 16:11:49

标签: c# events delegates

在使用事件处理程序和委托方法之间做出哪些好的考虑?

例如,我选择委托方法选项将功能实现推迟到另一个对象。我选择事件处理程序选项主要是为了让其他对象订阅更新。

但显然,正如你所看到的,这些都是非常粗略的标准。我已经在Stackoverflow上阅读了一些类似的问题,但它们面向非常具体的问题,而我对通用用法更感兴趣。

任何输入?

感谢。

1 个答案:

答案 0 :(得分:1)

如上所述,它会根据您的具体情况而有所不同。 Delegates曾经要求您的逻辑有一个单独的方法来实现您的逻辑。这使得Delegate的使用难以证明。但是,对于Lambda ExpressionsAnonymous MethodsDelegate实际上变得非常有用,功能强大Type很容易证明。

Delegates非常适合:

  • 事件处理程序
  • 开始一个主题
  • 回调
  • LINQ

具有特殊代码的模板的概念概念,Delegate非常好。

Event Handler在操作Class时寻找Object提供某种形式的通知时,User Interface是理想的选择。最常见的实现和最简单的示例是Class。每个Control代表一个ControlInterface中的每个Button都会有一个事件来指示何时进行更改。

Event Handler点击它的全部目的;但是在点击之前你不需要它来执行或做任何事情。 Delegate的一个例子。

他们经常在使用Delegate Object时声明。推理是Event封装了一个方法,因此可以匿名调用它。 ClassDelegate允许客户提供Event Event Handler时应调用的方法的方法。

所有Event是一个被调用到相关Event Handlers的过程。这些Delegate需要两个元素:

  • A Event
  • (可选)保存{{1}}数据的类。

所以在大多数情况下,它们是齐头并进的。

显然,你的问题没有提供太多细节,因此很难对你的标准进行实际回答或磨练。

有些网站可以帮助您:

这些都是重要概念,因此了解它们非常重要。希望这有助于澄清一点。