0

所以我有一个派生自GameComponent的类。在类内部存在此方法:

public override void Initialize(){
     base.Initialize();
}

我见过多个来源,人们做同样的事情,他们覆盖了 Initialize 方法,但除了base.Initialize调用之外没有任何实现。我不明白这一点,因为如果它什么都不做,为什么还要使用该方法?如果您不包含覆盖方法,则默认情况下会调用 GameComponent 类中的虚拟方法,对吗?我真的拿出了整个方法,没有发生任何不同。

简而言之,覆盖没有实现的方法有什么意义?

4

2 回答 2

0

没有任何。

原因是 GameComponent 模板包含它来指导您应该如何实现。

于 2012-04-13T06:55:26.537 回答
0

是的,您显示的内容完全等同于根本没有覆盖它;Resharper 实际上会建议删除这样的方法,因为它是不必要的混乱。

从技术上讲,覆盖它并仅调用基本方法不是“没有实现”,它是默认实现,或者没有额外的实现。没有实现会覆盖它,然后将方法置空:

public override void Initialize()
{
   // no implementation
}

在这种情况下,您不想这样做,但在某些情况下您可能想要这样做。

于 2012-04-13T23:50:41.030 回答