zoukankan      html  css  js  c++  java
  • 序列化实现深拷贝(小计)

     class Program
        {
            static void Main(string[] args)
            {
                var people1 = new People();
                people1.Age = 18;
                people1.IdCard = "410225";
                var departMent = new Department() { Name = "计算机" };
                people1.departMent = departMent;
                var people2 = people1.Clone();
                Console.WriteLine(people2.Age);
                Console.WriteLine(people2.IdCard);
                Console.WriteLine(people2.departMent.Name);
                Console.WriteLine("变化啦!");
                people1.Age = 18;
                people1.IdCard = "410225";
                departMent.Name = "金融"; 
                Console.WriteLine(people2.Age);
                Console.WriteLine(people2.IdCard);
                Console.WriteLine(people2.departMent.Name);
                Console.ReadLine();
    
            }
        }
        [Serializable]
        public class People
        {
            public int Age{get;set;}
            public string IdCard{get;set;}
            public Department departMent{get;set;}
    
            public People Clone()
            {
                using (Stream ms = new MemoryStream())
                {
                    IFormatter forma = new BinaryFormatter();
                    forma.Serialize(ms, this);
                    ms.Seek(0, SeekOrigin.Begin);
                    return forma.Deserialize(ms) as People;
                }
            }
    
    
        }
            [Serializable]
    
        public class Department
        {
            public string Name{get;set;}
        }
    

    实现了深度拷贝,不会因为Department中的Name变化而影响Department中的Name值

  • 相关阅读:
    MySQL数据库的基本操作命令
    autoCAD2014安装过程
    网站降权与恢复
    移动站的优化技巧
    Robots.txt详解
    友情链接交换技巧
    网站日志分析
    seo-网站内容的创建与优化
    网站外链的建设技巧
    网站内链优化
  • 原文地址:https://www.cnblogs.com/littlerain1991/p/7049778.html
Copyright © 2011-2022 走看看