コード例 #1
0
        /// <summary>
        /// 原型模式
        /// </summary>
        public static void Do()
        {
            ColorPicker picker = new ColorPicker(200, 1, 90);

            picker.Name = "拾色器";

            IColorDemo color = new RedColor();

            color.Red    = 255;
            color.Picker = picker;
            color.Name   = "红色";

            IColorDemo color1 = color.Clone();

            color1.Red  = 234;
            color1.Name = "红色2";

            IColorDemo color2 = color.DeepClone() as IColorDemo;

            Console.WriteLine(color.Blue == color1.Blue);
            Console.WriteLine(color.Blue == color2.Blue);

            Console.WriteLine("Picker 是否:{0}", color.Picker == color2.Picker);

            Console.WriteLine("Deep Copy 的对象,是否相等:{0}", color.Picker == color2.Picker);

            Console.WriteLine("两个对象是否相等:{0}", color.Equals(color2));
            Console.ReadKey();
        }
コード例 #2
0
        static void Main(string[] args)
        {
            Cup cup = new Cup();

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

            cup1.Height = 1;
            cup1.Factory.FactoryName = "AAA";
            Console.WriteLine(cup.Height == cup1.Height);
            Console.WriteLine(cup.Factory == cup1.Factory);


            //颜色

            IColorDemo color = new RedColor();

            color.Red = 255;

            IColorDemo color1 = color.Clone();

            color1.Blue = 255;
            Console.WriteLine(color.Blue == color1.Blue);

            IColorDemo2 color2 = new RedColor2();

            color.Red = 255;

            IColorDemo2 color3 = color2.Clone();

            color2.Blue = 252;
            Console.WriteLine(color2.Blue == color3.Blue);


            Console.ReadKey();
        }