コード例 #1
0
        /*ICloneable接口克隆方式学习 及 与静态扩展的比较 */
        #region ICloneable接口克隆方式学习 及 与静态扩展的比较

        /// <summary>
        /// 浅克隆测试
        /// </summary>
        static void TestICloneable()
        {
            Cup cup = new Cup();

            cup.Height = 20;
            cup.RL     = 200;
            cup.c      = new Colors()
            {
                foot = "白色", Top = "无色"
            };

            Console.WriteLine("***浅克隆测试***");
            Console.WriteLine("cup-Height:" + cup.Height); //20
            Console.WriteLine("cup-RL:" + cup.RL);         //200
            Console.WriteLine("cup-foot:" + cup.c.foot);   //白色
            Console.WriteLine("");

            Cup cup1 = (Cup)cup.Clone();

            cup1.Height = 10;
            cup1.RL     = 100;
            cup1.c.foot = "灰色";

            Console.WriteLine("cup1-Height:" + cup1.Height); //10
            Console.WriteLine("cup1-RL:" + cup1.RL);         //100
            Console.WriteLine("cup1-foot:" + cup1.c.foot);
            Console.WriteLine("");

            Console.WriteLine("cup-Height:" + cup.Height); //20
            Console.WriteLine("cup-RL:" + cup.RL);         //200
            Console.WriteLine("cup-foot:" + cup.c.foot);   //灰色 值发生改变了
            Console.WriteLine("");
        }