У меня есть базовый класс с некоторыми виртуальными функциями
public class ABaseClass
{
public virtual void DoAThing()
{
print("print this base");
}
}
У меня есть другой класс, который наследуется от базового класса, как показано ниже.
public class AChildClass : ABaseClass
{
public override void DoAThing()
{
print("child override");
base.DoAThing();
}
}
Во время выполнения я хочу создать экземпляр дочернего класса, а также обернуть / внедрить / переопределить метод, который он переопределяет в базовом классе, чтобы сделать следующее. Я в основном хочу добавить к DoAThing метод, чтобы при его вызове куда-то еще он делал дополнительный код, который я добавил.
...
//somewhere else I instantiate and override the method at runtime
AChildClass instance = new AChildClass()
{
DoAThing = new method()
{
// Do some extra stuff
print("print this also");
// do child class stuff and base stuff
print("child override")
base.DoAThing(); //print("print this base");
}
}
Возможно ли это сделать в C #?