C#中的对象浅拷贝

时间:2012-01-11 13:51:23

标签: c# shallow-copy

我知道在C#中执行浅拷贝我们可以使用MemberwiseClone()函数 但我有一个函数内的对象,我想要获取此对象的副本,所以当我添加到列表时,它不会在对象更改时引用同一个对象 这是我的代码

public void Do(object undoState)
    {
        _index += 1;
        if (_buffer.Count > _index)
            _buffer.RemoveRange(_index, _buffer.Count - _index);
        _buffer.Add(undoState);
    }

我想将UndoState对象复制到新对象并添加到缓冲区

谢谢

1 个答案:

答案 0 :(得分:2)

实现ICloneable接口,并将复制逻辑添加到其中。现在,不要在Do方法中接收对象,而是使用ICloneable。

相关问题