Предположим, у меня есть два класса:
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
}
}