我已经读到了下面的问题,它询问了委派和EventHandler之间的区别:Difference between EventHandler and delegete void()。今天下午,我在这里读到了一些其他问题。
我知道委派是指向函数的指针,并且是多播的。我读到“我是事件处理器”是一个“委托”。我注意到它有这样的签名:
Public Delegate Sub EventHandler ( _
sender As Object, _
e As EventArgs _
)但是,它不从Delegate继承。我确实使用了VB.NET中的Handles关键字,例如Handles Button1Click。事件处理程序的意义是什么?它只是一个带有两个论据的委托,即Object和EventArgs?为什么EventHandler类不从委托继承?
发布于 2013-02-25 23:27:58
事件处理程序是要在事件发生时执行的例程。
委托是对例程的引用。
如果没有处理程序,则委托不能引用任何内容。
委托是VB处理函数指针的简单方法。EventHandler不需要继承委托,因为它是一个函数,而不是指针。
发布于 2013-02-25 23:51:00
委派不是类。因此,它不能被继承。
正如您所观察到的,EventHandler只是一个具有众所周知签名的委托,因此定义了一种统一的事件触发和处理方式。
https://stackoverflow.com/questions/15070373
复制相似问题