Я пытаюсь обновить свою память, но не могу найти ответы с Google.
public class BaseClass
{
public virtual void DoSomething()
{
Trace.Write("base class");
}
}
public class DerivedClass : BaseClass
{
public override void DoSomething()
{
Trace.Write("derived class");
}
}
Если я создаю экземпляр производного класса, как его преобразовать в базовый класс, так что, когда вызывается DoSomething(), он использует только метод базового класса?
Динамическое приведение по-прежнему вызывает переопределенный метод производного класса:
DerivedClass dc = new DerivedClass();
dc.DoSomething();
(dc as BaseClass).DoSomething();
Вывод: "производный класс"