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;

            }
  • 相关阅读:
    学习进度条博客(软件工程)第一周
    随机产生30个两位数的四则运算(包括真分数的计算)
    构建之法阅读笔记01
    感想
    《构建之法》阅读笔记04
    团队冲刺第二天
    第八周学习进度条
    团队冲刺第一天
    第七周学习进度条
    课堂测试03
  • 原文地址:https://www.cnblogs.com/zeroone/p/2682731.html
Copyright © 2011-2022 走看看