Ejemplo n.º 1
0
        public static void SerializaClone()
        {
            WeeklyLog log = new WeeklyLog();

            log.Name    = "Victor";
            log.Date    = "第11周";
            log.Content = "这周工作太忙,每天都在加班!~~~~(>_<)~~~~";
            log.attachmentList.Add(new Attachment()
            {
                Name = "周报附件.xls"
            });

            WeeklyLog log2 = log.Clone() as WeeklyLog;

            log2.Date = "第12周";

            WeeklyLog log3 = log.Clone() as WeeklyLog;

            log3.Date = "第13周";

            Console.WriteLine("周报哈希:");
            Console.WriteLine("log : " + log.GetHashCode().ToString("X"));
            Console.WriteLine("log2 : " + log2.GetHashCode().ToString("X"));
            Console.WriteLine("log3 : " + log3.GetHashCode().ToString("X"));

            Console.WriteLine("附件哈希:");
            Console.WriteLine("log.attachmentList.First() : " + log.attachmentList.First().GetHashCode().ToString("X"));
            Console.WriteLine("log2.attachmentList.First() : " + log2.attachmentList.First().GetHashCode().ToString("X"));
            Console.WriteLine("log3.attachmentList.First() : " + log3.attachmentList.First().GetHashCode().ToString("X"));
        }
Ejemplo n.º 2
0
        public static void V1()
        {
            // First version
            WeeklyLog log = new WeeklyLog();

            log.Name    = "Victor";
            log.Date    = "第11周";
            log.Content = "这周工作太忙,每天都在加班!~~~~(>_<)~~~~";
            PrintWeeklyLog(log);
            // Second version based on First version
            WeeklyLog log2 = log.Clone() as WeeklyLog;

            log2.Date = "第12周";
            PrintWeeklyLog(log2);
            // Third version based on First version
            WeeklyLog log3 = log.Clone() as WeeklyLog;

            log3.Date = "第13周";
            PrintWeeklyLog(log3);
        }
Ejemplo n.º 3
0
        // v3 : 整体深复制
        public static void V3()
        {
            // First version
            WeeklyLog log = new WeeklyLog();

            log.attachmentList.Add(new Attachment()
            {
                Name = "工作总结20170426-20170501_Victor.xlsx"
            });
            // Second version
            WeeklyLog log2 = log.Clone() as WeeklyLog;

            // Compare 2 object
            Console.WriteLine("周报是否相同:{0}", object.ReferenceEquals(log, log2));
            // Compare 2 attachment
            Console.WriteLine("附件是否相同:{0}", object.ReferenceEquals(log.attachmentList[0], log2.attachmentList[0]));
        }