所以我有一个派生自GameComponent的课程。在课堂内存在这种方法:
public override void Initialize(){
base.Initialize();
}
我已经看到人们做同样事情的多个来源,他们覆盖了Initialize方法,但除了base.Initialize
调用之外没有任何实现。我不明白这个,因为如果它没有做任何事情,为什么有这个方法呢?如果你不包含覆盖方法,默认情况下会调用GameComponent类中的虚方法吗?我完全拿出了整个方法,没有发生任何不同的事情。
简而言之,重写没有实现的方法有什么意义?
答案 0 :(得分:0)
无。
原因是GameComponent模板包含它以指导您应该如何实现。
答案 1 :(得分:0)
是的,你所展示的完全等同于根本没有覆盖它;事实上,Resharper会建议删除这种方法,因为这是不必要的混乱。
要技术性,覆盖它并且只是调用基本方法不是“没有实现”,它是默认实现,或者没有其他实现。没有实现会覆盖它然后消隐方法:
public override void Initialize()
{
// no implementation
}
在这种情况下,您不希望这样做,但在某些情况下您可能会这样做。