1:继承EventArgs是表示该类可作为事件,删掉了就默认继承object,没人会说你错 ----就是说事件不继承EventArgs 也没有错,也能正常运用,那么继承他的意义是什么呢?看2,3。 觉得3的解释让我知道为什么,回过头再看2就明白很多了...
2:至于为什么要继承 EventArgs,这是 .NET 框架的约定。从软件工程的角度,无论你使用 MFC、Windows API、.NET Framework、还是什么库,和系统类库保持一致的编码风格,使得你新增的代码成为核心代码的自然延续都是首推的最佳实践。
3:不妨看一下最常见的click事件
private void button1_Click(object sender, EventArgs e)...
微软为什么不把EventArgs写成int或string?因为他在定义事件的时候不能确定事件所需参数的确切类型。所以抽象出一个类型。那直接写成object不也可以吗?完全可以,但是两个object参数放到一块会不会有些小迷茫呢,所以微软专门创建了这么一个类。从这点来说,EventArgs更像一种命名规范,任何人看到它都会知道它包含事件数据。这样当你想改变事件参数的个数或类型时,只要自定义一个封装了任意你喜欢的个数和类型的参数,并继承EventArgs的类即可。这样不是挺灵活的吗?对于性能当然不会有什么影响了,它只是个参数类型,而且它本身不包含任何事件数据。
-------一句话,EventArgs更像一种命名规范, 编程的一种系统库提供的一种约定规则,我们自己写的代码,也按照这个规则来,方便别人理解你写的代码的意图。