Это проще объяснить на примере. Учитывая эти два класса:
public class MyClassA
{
public String Property_A { get; set; }
public String Property_B { get; set; }
public String Property_C { get; set; }
public String Property_D { get; set; }
...
public String Property_Y { get; set; }
}
public class MyClassB: MyClassA
{
public String Property_Z { get; set; }
}
Предположим, я полностью создал экземпляр MyClassA (со всеми свойствами от A до Y). Затем мне нужно сделать экземпляр MyClassB, который точно такой же, как мой экземпляр MyClassA, но с заполненным Property_Z (с пользовательским значением, конечно). Как я могу это сделать?
Это не работает (выбрасывает и исключение Invalid Cast):
MyClassB myInstanceB = (myClassB) myInstanceA;
myInstance.Property_Z = myCustomValue;
Мне не нужно было делать ничего подобного со времен C ++, и я в тупике.
Есть идеи?
ОБНОВЛЕНИЕ: я нашел решение моей проблемы в том, как я создаю экземпляры. Это ниже. Я не пометил его как ответ, потому что он не совсем соответствовал моему вопросу.