zoukankan      html  css  js  c++  java
  • 关于对象的浅度拷贝和深度拷贝

    1、浅度拷贝:

     public ObjectrPrototype Clone()

        {

            //实现浅拷贝

            return (ObjectrPrototype ) this.MemberwiseClone();

        }

    ObjectrPrototype 表示返回的类型,原型模式中使用概率较高,放在对应类内部使用。

    2、深度拷贝:

     public ObjectrPrototype CreateDeepCopy()

        {

            ObjectrPrototype objectrPrototype;

     

            MemoryStream memoryStream = new MemoryStream();

            BinaryFormatter formatter = new BinaryFormatter();

     

            formatter.Serialize(memoryStream, this);

            memoryStream.Position = 0;

     

            objectrPrototype= (ObjectrPrototype )formatter.Deserialize(memoryStream);

            return objectrPrototype;

        }

    使用深度拷贝,需要对依赖类必须标注为可序列化的[Serializable]。

  • 相关阅读:
    day5
    \_\_setitem\_\_和\_\_getitem和\_\_delitem__
    描述符(\_\_get\_\_和\_\_set\_\_和\_\_delete\_\_)
    \_\_getattribute\_\_
    面向对象进阶小结
    property装饰器
    super()方法详解
    菱形继承问题
    类的派生
    类的继承
  • 原文地址:https://www.cnblogs.com/liujiaknowledge/p/5056256.html
Copyright © 2011-2022 走看看