答案 0 :(得分:7)
这是关于面向未来的代码。
该理论认为,如果在某些时候您发现您的代码应该向事件处理程序发布比以前更多的数据,您可以轻松地向传递给这些事件处理程序的对象添加更多属性。
如果出于某种原因,保存这些数据的类不在您的控制之下,则您继承它,并将您的属性添加到继承的类中。到目前为止一切都很好。
但是,如果您从未首先将任何对象传递给事件处理程序,则无法在没有现有代码中断的情况下向事件委托添加新参数。
因此,您将对虚拟对象EventArgs.Empty
传递给事件现在使您能够稍后从EventArgs继承并开始将数据传递给相同的事件,而无需更改事件处理程序一点都不在大多数情况下,您甚至不必重新编译使用事件处理程序的程序集。
所以EventArgs
只是你传递给事件处理程序的一个方便的类,你可以轻松地创建自己的类,但是因为除了作为可能的未来更改的占位符之外它没有任何意义,所以没有必要创建你自己的,只需使用EventArgs
。