这是一个更为理论性的问题。我知道在C#中,每个事件都必须有两个参数:对象和事件参数(eventargs)。这一点很清楚。但是,当使用基本的eventargs类时,它甚至无法传递任何数据,那么为什么要存在这个类呢?当然,我可以创建一个继承基本eventargs类的新类,但是我只是不明白这个不能携带任何数据的类的意义所在。
EventArgs.Empty 传递给事件,这样您就可以以后从EventArgs
派生并开始向相同的事件传递数据,而无需改变事件处理程序。在大多数情况下,甚至不需要重新编译使用事件处理程序的程序集。
因此,EventArgs
只是一个方便的类,可用于传递给事件处理程序。你也可以创建自己的类,但是由于它除了作为空闲占位符外没有任何意义,因此没有必要创建自己的类,只需使用EventArgs
即可。
EventHandler
继承的委托处理的事件才需要。 - Rotem