我有一个基础车和一些儿童班,如汽车,摩托车等.继承车辆.在每个子类中都有一个函数Go(); 现在我想在Go()函数触发时记录每辆车的信息,在那个日志中我想知道哪种车辆做了.
例:
public class vehicle { public void Go() { Log("vehicle X fired"); } } public class car : vehicle { public void Go() : base() { // do something } }
我如何知道在base()期间汽车给我打电话的功能?谢谢,
奥马里
GetType()
从Vehicle.Go()调用会起作用 - 但只有在实际调用Go()时才会这样.
强制执行此操作的一种方法是使用模板方法模式:
public abstract class Vehicle { public void Go() { Log("vehicle {0} fired", GetType().Name); GoImpl(); } protected abstract void GoImpl(); } public class Car : Vehicle { protected override void GoImpl() { // do something } }