考虑以下两个类别:
public class AAA{
string _Test1;
public string Test1{
get=>_Test1;
set{_Test1=value;}
}
}
public class BBB:AAA{
string _Test2;
public string Test2{
get=>_Test2;
set{_Test2=value;}
}
}
这是对象:
AAA aaa=new AAA(){Test1="123"};
BBB bbb=new BBB(){Test2="456"};
我想将aaa
的所有值复制到子类bbb
。
实际上,基类对象中有很多属性,我不想手动复制值:
bbb.Test1=aaa.Test1;
我该怎么办?你能帮我吗?谢谢。
答案 0 :(得分:1)
您可以使用reflection进行此操作:
foreach (var field in typeof(AAA).GetFields())
{
field.SetValue(bbb, field.GetValue(aaa));
}
想法是遍历AAA
中所有类型bbb
的字段,并为其分配在aaa
中具有的值。请注意,这仅适用于字段。如果您还想复制属性的值,则可以将其扩展为也使用.GetProperties()
方法。