I have a base class vehicle and some children classes like car, motorbike etc.. inheriting from vehicle. In each children class there is a function Go(); now I want to log information on every vehicle when the function Go() fires, and on that log I want to know which kind of vehicle did it.
Example:
public class vehicle { public void Go() { Log('vehicle X fired'); } } public class car : vehicle { public void Go() : base() { // do something } }
How can I know in the function Log that car called me during the base()? Thanks,
Omri
Calling
GetType()from Vehicle.Go() would work – but only if Go() was actually called.One way of enforcing this is to use the template method pattern: