2 つのクラスがあるとします。
class Employee
と
class AdvancedEmployee:Employee
C# ではダウンキャストできないため、次のようなものが機能しないことはわかっています。
var employee = new Employee();
var advanced = employee as AdvancedEmployee;
私の質問は次のとおりです。効率的な方法でダウンキャストを達成するにはどうすればよいですか? 実際には、従業員をパラメーターとして受け取り、それを使用してその値を注入し、基本的にクローンを作成するコンストラクターが AdvancedEmployee にあります。
アップデート
重複するデータを解決するために、アプローチを少し変更し、AdvancedEmployee CONTAINS は従業員そのものではなく、従業員を含むようになりました。例:
class Employee;
class AdvancedEmployee
{
private employee
public AdvancedEmployee(Employee employee){
this.employee = employee
}
}