zoukankan      html  css  js  c++  java
  • 深拷贝 武胜

    浅拷贝(影子克隆):只复制对象的基本类型,对象类型,仍属于原来的引用.
            深拷贝(深度克隆):不紧复制对象的基本类,同时也复制原对象中的对象.就是说完全是新对象产生的.
          在C#中,复制一个基本类型,是全盘复制的。而对于引用类型,只是复制一个引用指针。所以在对其进行深拷贝也是比较麻烦的,要实现ICloneable接口的Clone方法。
          当然也有其他比较快的方法,下面这个是在网上找到的代码。只需要将一个对象序列化为binary stream,然后再将它反序列化为新的对象,就能实现深拷贝。代码如下:

    程序代码

    public static T CloneOf<T>(T serializableObject)
          {
              object objCopy = null;

              MemoryStream stream = new MemoryStream();
              BinaryFormatter binFormatter = new BinaryFormatter();
              binFormatter.Serialize(stream, serializableObject);
              stream.Position = 0;
              objCopy = (T) binFormatter.Deserialize(stream);
              stream.Close();
              return (T) objCopy;

            }
  • 相关阅读:
    10. Regular Expression Matching
    9. Palindrome Number
    8. String to Integer (atoi)
    7. Reverse Integer
    6. ZigZag Conversion
    《设计模式
    《设计模式
    《设计模式
    《linux 计划任务》- cron
    《设计模式
  • 原文地址:https://www.cnblogs.com/zeroone/p/2682731.html
Copyright © 2011-2022 走看看