我应该继承或订阅活动吗?

时间:2009-12-22 16:58:31

标签: .net winforms oop

如果我为我的Windows应用程序创建Abstract BaseForm,我可以在加载应用程序表单时使用它来执行常见操作。我还可以override OnLoad方法,我订阅Load事件(BaseForm_Load)。

从设计和性能的角度来看哪种方法更好?

2 个答案:

答案 0 :(得分:5)

通常,如果要实现基类(即:子类化Form),最好覆盖基类方法。

这样做有多种原因 - 这些方法通常首先发生,并始终保证顺序(如果您使用该事件,其他方法可以通过可能干扰您的方法的其他订阅者运行)。此外,这样做的开销也略微减少了。

可能最好的理由是,这是公认的做法,它使您的代码更易于维护,尤其是其他开发人员。

答案 1 :(得分:1)

除非我需要修改OnLoad()行为,否则我更愿意使用订阅Load事件。它比较慢,但我认为它在概念上更正确。

Also see similar question