gpt4 book ai didi

c# - 如何使用 c#.net 将基类的实例复制到派生类基

转载 作者:行者123 更新时间:2023-11-30 17:36:17 24 4
gpt4 key购买 nike

我遇到需要将基类成员复制到派生类的情况。我有一个由其他服务返回的基类实例,我们用作其他类的基类的是同一个类。

当我们创建派生类的对象时,我想将已经创建的基类实例分配给派生类,我知道我们不能将基类对象分配给派生类,但我仍在寻找任何其他解决方案。有人有什么想法吗?

示例:

public class VBase 
{
public string Type {get;set;}
public string Colour {get;set;}
}

public class Car : VBase
{
public string Name {get;set;}
public int Year {get;set;}
}

//我从其他来源获取的此类实例

VBase mBase= new VBase();  
mBase.Type = "SUV";
mBase.Colour = "Black";

//-------------------------------------------- ----------

Car myCar= new Car();
myCar.Name = "AUDI";
mBase.Year = "2016";

//这里我想将基类的实例复制到派生类,类似这样或任何其他可能的方式。

myCar.base=mBase;

最佳答案

用天真的方式是不可能的。

我想推荐定义构造函数或静态方法。我个人不建议为此工作使用 AutoMapper 等其他库,因为它们可能需要进行一些转换并使代码变得繁琐。

public class Car : VBase 
{
// Method 1: define constructor.
public class Car(VBase v) {
this.Type = v.Type;
this.Colour = v.Colour;
}

// Method 2: static method.
public static Car FromVBase(VBase v){
return new Car()
{
this.Type = v.Type;
this.Colour = v.Colour;
};
}

public string Name {get;set;}
public int Year {get;set;}
}

关于c# - 如何使用 c#.net 将基类的实例复制到派生类基,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39852835/

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