static void Main(string[] args) { Circle c = new Circle(new Point(6, 10), 60); Circle b = new Circle(new Point(5, 5), 50.5); Rectangle r = new Rectangle(new Point(10, 10), 40); List <Shape> a = new List <Shape> { r, b, c }; ShapeHolder s = new ShapeHolder(a); Console.WriteLine(c); ShapeHolder n = s.clone(); c.Center.X = 99999; Console.WriteLine(n.shapes[2]); //DoStuffWithCircle(s.clone() as Circle); Console.WriteLine(c); }
static void Main(string[] args) { ShapeHolder sh = new ShapeHolder(); sh.listOfShapes.Add(new Rectangle(new Point(1, 2), new Point(1, 2), new Point(1, 2), new Point(1, 2))); sh.listOfShapes.Add(new Rectangle(new Point(3, 4), new Point(5, 2), new Point(1, 2), new Point(7, 7))); sh.listOfShapes.Add(new Circle(new Point(5, 1), 15)); ShapeHolder aaaaa = sh.clone(); aaaaa.listOfShapes[0] = new Circle(new Point(1, 0), 222); Console.WriteLine(sh.ToString()); Console.WriteLine("--------"); Console.WriteLine(aaaaa.ToString()); }
static void Main(string[] args) { IList <Shape> shapes = new List <Shape>(); shapes.Add(new Circle(new Point(5, 5), 50.5)); shapes.Add(new Circle(new Point(4, 5), 20)); shapes.Add(new Rectangle(new Point(2, 5), new Point(3, 5), new Point(4, 5), new Point(5, 5))); ShapeHolder shapeHolder = new ShapeHolder(shapes); Console.WriteLine(shapeHolder); ShapeHolder shapeHolder2 = shapeHolder.clone(); DoStuffWithShapeHolder(shapeHolder2); Console.WriteLine(shapeHolder2); Console.WriteLine(shapeHolder); Console.ReadLine(); }
static void Main(string[] args) { Circle c = new Circle(new Point(5, 5), 50.5); Console.WriteLine("**Circle**"); Console.WriteLine("\nOriginal"); Console.WriteLine("________"); Console.WriteLine(c); DoStuffWithCircle(c.clone() as Circle); Console.WriteLine("\nSend clone"); Console.WriteLine("__________"); Console.WriteLine(c); DoStuffWithCircle(c); Console.WriteLine("\nSend original"); Console.WriteLine("_____________"); Console.WriteLine(c); Console.WriteLine("======================================"); Rectangle r = new Rectangle(new Point(1, 1), new Point(1, 3), new Point(3, 1), new Point(3, 3)); Console.WriteLine("\n**Rectangle**"); Console.WriteLine("\nOriginal"); Console.WriteLine("________"); Console.WriteLine(r); DoStuffWithRectangle(r.clone() as Rectangle); Console.WriteLine("\nSend clone"); Console.WriteLine("__________"); Console.WriteLine(r); DoStuffWithRectangle(r); Console.WriteLine("\nSend original"); Console.WriteLine("_____________"); Console.WriteLine(r); Console.WriteLine("======================================"); Console.WriteLine("\n**Shape**"); Circle c1 = new Circle(new Point(1, 1), 3.14); Circle c2 = new Circle(new Point(2, 2), 6.28); Rectangle r1 = new Rectangle(new Point(1, 1), new Point(1, 4), new Point(3, 1), new Point(3, 4)); ShapeHolder s = new ShapeHolder(); s.list.Add(c1); s.list.Add(c2); s.list.Add(r1); // Print original shapeholder Console.WriteLine("\nOriginal Shape list"); Console.WriteLine("___________________"); s.PrintShapeList(); // Create clone ShapeHolder sClone = s.clone(); DoStuffWithCircle(c1); DoStuffWithRectangle(r1); // Print original after change Console.WriteLine("\nOriginal Shape list after change"); Console.WriteLine("________________________________"); s.PrintShapeList(); // Print clone after change Console.WriteLine("\nClone Shape list after change"); Console.WriteLine("________________________________"); sClone.PrintShapeList(); }
static void Main(string[] args) { Shape c = new circle(new Point(5, 5), 50.5); Console.WriteLine("First circle:"); Console.WriteLine("============="); Console.WriteLine(c + "\n"); DoStuffWithCircle(c.clone() as circle); Console.WriteLine("First circle after change:"); Console.WriteLine("=========================="); Console.WriteLine(c + "\n"); Shape r = new Rectangle(new Point(0, 0), new Point(0, 2), new Point(2, 4), new Point(0, 4)); Console.WriteLine("First Rectangle:"); Console.WriteLine("==============="); Console.WriteLine(r + "\n"); DoStuffWithRectangle(r.clone() as Rectangle); Console.WriteLine("First Rectangle after change:"); Console.WriteLine("============================="); Console.WriteLine(r + "\n"); ShapeHolder container1 = new ShapeHolder(); container1.shapeList.Add(c); container1.shapeList.Add(r); ShapeHolder container2 = container1.clone(); Console.WriteLine("First Container:"); Console.WriteLine("================"); foreach (Shape s in container1.shapeList) { Console.WriteLine(s); } Console.WriteLine("Second Container:"); Console.WriteLine("================="); foreach (Shape s in container2.shapeList) { Console.WriteLine(s); } (c as circle).area = 30; Console.WriteLine("First Container after change:"); Console.WriteLine("============================="); foreach (Shape s in container1.shapeList) { Console.WriteLine(s); } Console.WriteLine("Second Container after change:"); Console.WriteLine("=============================="); foreach (Shape s in container2.shapeList) { Console.WriteLine(s); } }