У меня есть дочерний класс, который не переопределяет один из базовых методов своего родителя.Я хочу создать это переопределение во время выполнения.Могу ли я сделать это?Я знаю, что можно изменить метод, который уже существует, но это немного отличается.
Предположим, у меня есть:
class MyBaseClass
{
public bool testMethod() {
return false;
}
}
class MyChildClass : MyBaseClass
{
}
...
MyBaseClass p=new MyBaseClas();
MyChildClass child=new MyChildClass();
p.testMethod(); // should always return false
child.testMethod(); // returns false
.... // Do Magic?
// Make child.testMethod(); return true
Если бы MyChildClass создал переопределение testMethod (), я мог быuse Reflection;
// If
class MyChildClass : MyBaseClass
{
public override bool testMethod() {
return false;
}
}
// then I could have
MethodInfo m = typeof(MyChildClass).GetMethod("testMethod");
// and then do reflection stuff to change it
Но m равно нулю.
Можно ли сделать так, чтобы всякий раз, когда экземпляр MyChildClass вызывал testMethod (), он возвращал true?