覆盖没有实现的方法

时间:2012-04-12 23:45:46

标签: c# xna override method-overriding

所以我有一个派生自GameComponent的课程。在课堂内存在这种方法:

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

我已经看到人们做同样事情的多个来源,他们覆盖了Initialize方法,但除了base.Initialize调用之外没有任何实现。我不明白这个,因为如果它没有做任何事情,为什么有这个方法呢?如果你不包含覆盖方法,默认情况下会调用GameComponent类中的虚方法吗?我完全拿出了整个方法,没有发生任何不同的事情。

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

2 个答案:

答案 0 :(得分:0)

无。

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

答案 1 :(得分:0)

是的,你所展示的完全等同于根本没有覆盖它;事实上,Resharper会建议删除这种方法,因为这是不必要的混乱。

要技术性,覆盖它并且只是调用基本方法不是“没有实现”,它是默认实现,或者没有其他实现。没有实现会覆盖它然后消隐方法:

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

在这种情况下,您不希望这样做,但在某些情况下您可能会这样做。