我遇到需要将基类成员复制到派生类的情况。 我有一个由其他服务返回的基类实例,我们用作其他类的基类的是同一个类。
当我们创建派生类的对象时,我想将已经创建的基类实例分配给派生类,我知道我们不能将基类对象分配给派生类,但我仍在寻找任何其他解决方案。 有人有什么想法吗?
示例:
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/