Приведение базового экземпляра к производному классу (downcast)в C#

Предположим, у меня есть два класса:

class Employee 

и

class AdvancedEmployee:Employee

. Я знаю, что что-то подобное не будет работать, так как я не могу использовать C#:

var employee = new Employee();
var advanced = employee as AdvancedEmployee;

Мой вопрос :Как выполнить downcast эффективным способом? На самом деле у меня есть конструктор AdvancedEmployee, который принимает Employee в качестве параметра и использует его для ввода его значений, в основном создавая клон.


Обновление

Чтобы решить проблему дублирования данных, я немного изменил подход, и теперь AdvancedEmployee СОДЕРЖИТ сотрудника, а не сам является им. Пример:

class Employee;

class AdvancedEmployee
{
   private employee

   public AdvancedEmployee(Employee employee){

    this.employee = employee

  }           

}
8
задан Israel Lot 21 April 2012 в 08:37
поделиться