I see two problems here, one in your code sample and one in your understanding of how overriding works.
Start()
is already defined as aprotected virtual
method of the parent class. Your definition in the derived class with conflict with the parent's definition unless you declareStart()
in your derived class asprotected override
.- Declaring an override of a method does not preclude you from including the functionality provided by the base class's method. You can invoke the base class's definition of
Start()
by calling it usingbase.Start();
Your attempt to call it viaMyBase.Start()
doesn't work because that syntax is attempting to tell the compiler to find astatic
method inMyBase
calledStart()
, which does not exist (or at least does not in the sample you've provided.)
In short, declaring Start()
as protected override void
and calling the base class's version via base.Start();
will accomplish your stated goal.