如何使用对阵列使用方法的深度克隆?

时间:2019-06-07 10:25:42

标签: c# arrays list clone deep-copy

我有以下代码。

class Animal : ICloneable
{
    int age;
    string name;

    object ICloneable.Clone()
    {
        return this.MemberwiseClone();
    }

    public Animal Clone()
    {
        return (Animal)((ICloneable)this).Clone();
    }
}


class ZOO:ICloneable
{
    int capacity;
    List<Animal> list = new List<Animal>();

    Animal[] animals;

    object ICloneable.Clone()
    {
        return this.MemberwiseClone();
    }

    public ZOO Clone()
    {
        ZOO nnew = (ZOO)((ICloneable)this).Clone();
        List<Animal> copy = new List<Animal>();
        foreach(Animal a in list)
        {
            copy.Add(a.Clone());
        }
        nnew.list = copy;

        return nnew;

    }
}

如何对我的动物数组使用ZOO Clone()方法? 它与列表一起工作,但我不知道如何使用 Animal []用于克隆的动物。 附注:清单是一个例子。我只需要使用数组克隆即可。

0 个答案:

没有答案