C# 将信息从父对象复制到子对象

C# 将信息从父对象复制到子对象,c#,C#,因此,我有一个父实体producern及其子实体ProducerNS ProducerNS继承了Producer的所有属性和一个附加字段,我们将其称为anyColumn 我有一个对象生成器,我想将对象复制到producern中,就像这样 Producer producer = getproducer(); ProducerNS producerns = producer; producerns.anyColumn = 'hellobunnies'; 但是,我知道上面的语法是不正确的。我可以在不

因此,我有一个父实体
producern
及其子实体
ProducerNS

ProducerNS
继承了
Producer
的所有属性和一个附加字段,我们将其称为
anyColumn

我有一个对象生成器,我想将对象复制到producern中,就像这样

Producer producer = getproducer();
ProducerNS producerns = producer;
producerns.anyColumn = 'hellobunnies';

但是,我知道上面的语法是不正确的。我可以在不单独转让的情况下转让所有财产吗?(Producer有很多字段)如果是,如何进行?

您希望将Producern对象的深度复制到producerns对象中

在这里查看一下在c#中进行深度复制的想法,请记住,您的子类显然具有您需要考虑的附加属性:

下面是一篇专门用于复制子类的帖子:


另一种选择是使用反射从Producern对象获取属性列表,并使用producerns对象中每个属性的值。这可以在一个简单的foreach循环中完成

在不手动实现复制构造函数的情况下实现所需功能的最佳方法是将您的
getproducer()
函数变为泛型:

T getproducer<T>()
   where T : Producer, new()
{
    var result = new T();
    ...
    return result;
}

...

ProducerNS producerns = getproducer<ProduceNS>();
producerns.anyColumn = 'hellobunnies';
T getproducer()
其中T:生产者,新()
{
var结果=新的T();
...
返回结果;
}
...
ProducerNS ProducerNS=getproducern();
producerns.anyColumn='hellobunnies';