【发布时间】:2011-12-09 13:00:56
【问题描述】:
我发现的唯一与此类似的问题是this,答案建议必须使用 Reflector 来找出答案。
在大多数情况下呢?一般来说,基方法在方法中是先调用还是最后调用?
我注意到在一些库中,它在方法的开头被调用,而在 XNA 框架中,它们在方法的结尾被调用(base.Update、base.Draw 等)。
【问题讨论】:
标签: c# coding-style virtual
我发现的唯一与此类似的问题是this,答案建议必须使用 Reflector 来找出答案。
在大多数情况下呢?一般来说,基方法在方法中是先调用还是最后调用?
我注意到在一些库中,它在方法的开头被调用,而在 XNA 框架中,它们在方法的结尾被调用(base.Update、base.Draw 等)。
【问题讨论】:
标签: c# coding-style virtual
这取决于您是否希望派生行为发生在基本行为之前或之后。
别忘了你可以在中间调用基本方法,也可以不调用。
话虽如此,一般来说它会被称为第一件事。因为那时您的覆盖方法可以选择“覆盖”基类完成的设置。
但在诸如 Close 或 Dispose 之类的方法中,最后调用它更为习惯(有时是强制性的)。
【讨论】:
protected override void OnResize(...)
这完全取决于你想做什么。关于应该发生的事情并没有真正的“一般”规则。例如,您可能想要做一些额外的验证,然后调用基本方法,然后做其他事情。或者您可能只是想计算调用基本方法需要多长时间。
将每个案例视为个别情况。
【讨论】: