如何基于C#中的特定源对象创建各种副本?

时间:2018-07-19 11:25:32

标签: c# reference copy-constructor deep-copy

我有一个MyObject类型的复杂objectA。我想基于特定的objectA创建此MyObject的多个变体。

public class MyObject()
{
    int myAttr1;
    string myAttr2;
    MyChildObject1 myChildObject1;
    MyChildObject2 myChildObject2;
    ...
}

public List<MyObject> createVariations(MyObject myObject)
{
    List<MyObject> myObjectList = new List<MyObject>();
    MyObject myFirstVariation = myObject;
    myFirstVariation.myAttr1 = myObject.myAttr1 + 5;

    myObjectList.Add(myFirstVariation);

    // TODO: Do different specific variations of the same source object!
    ...

    return myObjectList;
}

我知道这是行不通的,因为我只是创建对myObject的多个引用,并且正在更改其参数,因此列表中将有很多相同对象的引用。

如何获取具有不同配置的对象列表。我真的必须为这些对象创建一个副本构造函数吗?预先谢谢你。

0 个答案:

没有答案