Можно ли в С# явно преобразовать объект базового класса в один из его производных классов? В настоящее время я думаю, что мне нужно создать конструктор для моих производных классов, которые принимают объект базового класса в качестве параметра и копируют значения свойств. Мне не очень нравится эта идея, поэтому я хотел бы избежать ее, если это возможно.
Это не похоже, что он должен работать (объект создается как новая база, поэтому память не должна выделяться для дополнительных членов производного класса), но С#, похоже, позволяет мне это сделать:
class BaseClass
{
... some stuff ...
}
class DerivedClass : BaseClass
{
public bool MyDerivedProperty{ get; set; }
}
static void Main(string[] args)
{
BaseClass myBaseObject = new BaseClass();
DerivedClass myDerivedObject = myBaseObject as DerivedClass;
myDerivedObject.MyDerivedProperty = true;
}