关于C#中的事件和代表的澄清

时间:2015-03-31 13:00:06

标签: c# .net events delegates

我学习C#编程语言。我无法理解Events and Delegates的基本概念。我已经看过很多关于Events and Delegates的教程,但我仍然对它们的概念感到困惑。我还不了解利用事件的基点。我对Delegates知道委托与函数指针类似可以使用具有相同参数和返回类型的Delegate来调用任何函数,但是为什么会使用事件。有人同样可以澄清一个情况,即如果我不利用事件,那么利用事件是很重要的Events还请解释一下EventHandler类型或类别吗?在下面的代码中

public static event EventHandler myevent;

谢谢。

3 个答案:

答案 0 :(得分:1)

如果你得到代表而不是你能想到的事件只是作为那些代表的集合/列表,你将按要求召集(如果你举起活动) - 它只不过了。

当您不知道(或者不想知道)可能对这些信息感兴趣的信息时,这是让信息流出您的对象的便捷形式。

对于问题的第二部分:EventHandler只是一个delegate,它提供了一个公共表单(事件的发件人和EventArgs的信息)

答案 1 :(得分:0)

事件发生了一个标志,发生了一些事情,常见的是当你点击按钮时,它会引发一个事件,告诉别人发生了“某事”。事件处理程序可以在引发该事件时执行某些操作。

因此,当您单击按钮时可能需要执行某些操作时,可以设置处理程序以在单击按钮时激活。您还可以将多个事件处理程序附加到特定事件,每个事件处理程序执行不同的操作。

事件关键字只是一种创建自己的“按钮点击”或“关于选择更改”事件的方法,而EventHandler可以让您捕获它们并在此之后执行操作。

答案 2 :(得分:0)

EventHandler是一个委托,是一个委托,是一个委托...一个功能模式,如果你愿意的话。

整个EventDelegate系统更像是一种设计模式,它构建在语言中。一旦你习惯了它并开始定义自己的DelegatesEventArgs,你会发现它非常方便。 它们的使用也是常识,因此如果您想共享库,则需要较少的文档。