Это сценарий:
class BaseClass
{
public virtual string Prop {get; set;}
}
class ChildClass : BaseClass
{
public override string Prop {get; set;}
}
//program
...
ChildClass instance = new ChildClass;
Console.WriteLine(instance.Prop); //accessing ChildClass.Prop
...
Вопрос в том, как получить доступ к BaseClass.Prop в экземпляре ChildClass? Будет ли кастинг делать трюк?
Console.WriteLine((instance as BaseClass).Prop); //accessing BaseClass.Prop
-EDIT-
Многие люди предлагали кастинг. В C ++ это не сработало бы, потому что полиморфизм по-прежнему гарантирует, что вызывается дочернее свойство. Разве это не так в C #?
В C ++ вы могли бы решить эту проблему, выполнив:
instance.(BaseClass::get_Prop())