在方法的开头或结尾调用基本方法?

时间:2011-10-17 19:05:26

标签: c# coding-style virtual

我发现的唯一类似问题是this,答案建议必须使用Reflector来查找。

在大多数情况下呢?通常,在方法中首先或最后调用的基本方法是什么?

我注意到在某些库中,它在方法的开头被调用,而在XNA Framework中,它们在方法的末尾被调用(base.Update,base.Draw,等等)。

2 个答案:

答案 0 :(得分:20)

这取决于您是否希望派生行为发生在基本行为之前或之后。

不要忘记你可以在中间调用基本方法或根本不调用。

话虽如此,一般来说它将被称为第一件事。因为那么被覆盖的方法可以选择“覆盖”基类完成的设置。

但是在像Close或Dispose这样的方法中,最后调用它更为习惯(有时是强制性的)。

答案 1 :(得分:6)

这完全取决于你想做什么。对于应该发生的事情,并没有真正的“一般”规则。例如,您可能想要进行一些额外的验证,然后调用基本方法,然后执行其他操作。或者您可能只想计算基本方法调用的时间。

将每个案件视为个别情况。