gpt4 book ai didi

c# - 在 C# 中将基实例转换为派生类(向下转换)

转载 作者:太空狗 更新时间:2023-10-29 18:16:38 24 4
gpt4 key购买 nike

假设我有两个类:

class Employee 

class AdvancedEmployee:Employee

我知道这样的事情行不通,因为我不能对 C# 失望:

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

我的问题是:如何高效的完成downcast?实际上,我在 AdvancedEmployee 上有一个构造函数,它将 Employee 作为参数并使用它来注入(inject)它的值,基本上是克隆。


更新

为了解决可能会重复的数据,我稍微改变了方法,现在 AdvancedEmployee 包含一名员工,而不是一个员工本身。示例:

class Employee;

class AdvancedEmployee
{
private employee

public AdvancedEmployee(Employee employee){

this.employee = employee

}

}

最佳答案

它不能是转换,它实际上是不同类型之间的转换

我会添加构造函数或静态成员函数,如 AdvancedEmployee FromBase(Employee e),以构造给定基类型的派生类型。

关于c# - 在 C# 中将基实例转换为派生类(向下转换),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10172767/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com