Ejemplo n.º 1
0
        public object Clone()
        {
            ConcreatePrototype prototype = new ConcreatePrototype();

            prototype.state = this.state;

            return(prototype);
        }
Ejemplo n.º 2
0
        static void Main(string[] args)
        {
            ConcreatePrototype objectA = new ConcreatePrototype();

            objectA.state = "A: Processing";
            //This clone is deep clone
            ConcreatePrototype objectB = (ConcreatePrototype)objectA.Clone();

            Console.WriteLine(objectB.state);
            //the change of Object b will not affect objectA
            objectB.state = "B: Pending";
            Console.WriteLine(objectB.state);
            Console.WriteLine(objectA.state);
            //Shadow Copy
            ConcreatePrototype objectC = objectA;

            Console.WriteLine(objectC.state);
            objectC.state = "C:Pending";
            //the change of objectC will affect objectA
            Console.WriteLine(objectC.state);
            Console.WriteLine(objectA.state);
            Console.Read();
        }