美文网首页
C#深度拷贝,浅拷贝

C#深度拷贝,浅拷贝

作者: 晓龙酱 | 来源:发表于2017-09-18 10:32 被阅读12次

使用序列化的方法实现深度拷贝非常方便

using System;
using System.IO;
using System.Runtime.Serialization;
using System.Runtime.Serialization.Formatters.Binary;

<font color=blue>[Serializable]</font>
class Person : ICloneable
{
    public object Clone()
    {
        return this.MemberwiseClone();
    }

    public Person DeepClone()
    {
        using(Stream os = new MemoryStream())
        {
            IFormatter formatter = new BinaryFormatter(); 
            formatter.Serialize(os, this);
            os.Seek(0, SeekOrigin.Begin);
            return formatter.Deserialize(os) as Person;
        }
    }

    public Person ShallowClone()
    {
        return Clone() as Person;
    }
}

相关文章

  • C#深度拷贝,浅拷贝

    使用序列化的方法实现深度拷贝非常方便

  • 深拷贝、浅拷贝

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试题整理

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅拷贝...

  • 面试 (一) : 基础篇

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

  • 基础

    1、父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 深拷贝同浅拷贝的区别:浅...

  • 常见的面试(一)

    父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。• 深拷贝同浅拷贝的区别:浅拷...

  • 读书笔记

    深度拷贝和浅度拷贝的区别 深度拷贝与浅度拷贝的区别主要在于有没有为拷贝出的新对象在堆中重新分配一块内存区域。浅度拷...

  • iOS面试基础一

    #父类实现深拷贝时,子类如何实现深度拷贝.父类没有实现深拷贝时,子类如何实现深度拷贝.# <(1)深拷贝同浅拷贝的...

  • 0. iOS面试题基础篇

    1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...

  • iOS基础知识点01

    1. 父类实现深拷贝时,子类如何实现深度拷贝。父类没有实现深拷贝时,子类如何实现深度拷贝。 1.1 深拷贝同浅拷贝...

网友评论

      本文标题:C#深度拷贝,浅拷贝

      本文链接:https://www.haomeiwen.com/subject/wabvsxtx.html