Konwertuj klasę bazową na klasę pochodną [duplikat]

To pytanie ma już tutaj odpowiedź:

Czy można przypisać obiekt klasy bazowej do pochodnego odwołania do klasy z wyraźnym typem? 20 odpowiedzi

Czy w języku C # jest możliwe jawne przekonwertowanie obiektu klasy bazowej na jedną z klas pochodnych? Obecnie myślę, że muszę utworzyć konstruktor dla moich klas pochodnych, które akceptują obiekt klasy bazowej jako parametr i kopiują wartości właściwości. Nie podoba mi się ten pomysł, więc chciałbym tego uniknąć, jeśli to możliwe.

Wydaje się, że nie powinno to działać (obiekt jest tworzony jako nowa baza, więc pamięć nie powinna być przydzielana dodatkowym członkom klasy pochodnej), ale wydaje się, że C # pozwala mi to zrobić:

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;
}

questionAnswers(6)

yourAnswerToTheQuestion