Beispiel #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"));
        }
Beispiel #2
0
        public static void PrintWeeklyLog(WeeklyLog log)
        {
            if (log == null)
            {
                return;
            }

            Console.WriteLine("----------- start : M公司个人工作周报 -----------");
            Console.WriteLine("周次:{0}", log.Date);
            Console.WriteLine("员工:{0}", log.Name);
            Console.WriteLine("内容:{0}", log.Content);
            Console.WriteLine("----------- end : M公司个人工作周报 -----------");
        }
Beispiel #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]));
        }
Beispiel #4
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);
        }