【问题标题】:Call base method at beginning or end of method?在方法的开头或结尾调用基本方法?
【发布时间】:2011-12-09 13:00:56
【问题描述】:

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

在大多数情况下呢?一般来说,基方法在方法中是先调用还是最后调用?

我注意到在一些库中,它在方法的开头被调用,而在 XNA 框架中,它们在方法的结尾被调用(base.Update、base.Draw 等)。

【问题讨论】:

    标签: c# coding-style virtual


    【解决方案1】:

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

    别忘了你可以在中间调用基本方法,也可以不调用。

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

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

    【讨论】:

    • 通常创建场景在开头都有。最后进行清理。像更新之类的东西可能在中间。
    • @GeorgeMamaladze 活动怎么样?有什么经验法则吗?例如protected override void OnResize(...)
    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-10-12
      • 2012-08-21
      • 2010-10-31
      • 1970-01-01
      • 2012-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多