سلام.
شما کلاس Child رو میتونید به Parent کست کنید، به بیان دیگه اگر کلاس های زیر رو در نظر بگیریم:
public class Parent
{
public int ParentProp { get; set; }
}
public class Child : Parent
{
public int ChildProp { get; set; }
}
در اینصورت:
Child c = new Child();
Parent p = (Parent)c;
کد صحیحی هستش. چون در واقع Child در وهله اول، خصوصیات Parent رو داره به ارث میبره. اما برعکسش خیر. یعنی شما نمی تونید یک Parent رو به Child کست کنید. چون مشخص نیست که اون Parent لزوما Child1 هستش، یا Child2 و ...
اما اگر این سوال رو برای Data Transfer Object ها می پرسید، میتونید از Framework هایی مثل AutoMapper و ... استفاده کنید تا Object ها رو به هم Convert کنید. دقت کنید، این دیگه Cast نیست. روش دیگه استفاده از Reflection هستش، یا Serialize کردن Parent به فرضا JSON Object و Deserialize کردن اون JSON Object به Child Object که خوب، توصیه می کنم از هر دو روش اخیر منصرف بشید.
موفق باشید.