runme.cs
using System;
using System.Collections.Generic;
public class runme
{
static void Main()
{
// ----- Object creation -----
Console.WriteLine("Creating some objects:");
Circle c = new Circle(10);
Console.WriteLine(" Created " + c);
Square s = new Square(10);
Console.WriteLine(" Created " + s);
// ----- Access a static member -----
Console.WriteLine("\nA total of " + Shape.nshapes + " shapes were created");
// ----- Member data access -----
// Set the location of the object
c.x = 20;
c.y = 30;
s.x = -10;
s.y = 5;
Console.WriteLine("\nHere is their current position:");
Console.WriteLine(" Circle = ({0}, {1})", c.x,c.y);
Console.WriteLine(" Square = ({0}, {1})", s.x,s.y);
// ----- Call some methods -----
Console.WriteLine("\nHere are some properties of the shapes:");
List <Shape> shapeList = new List <Shape> { c,s };
foreach(var o in shapeList){
Console.WriteLine(" " + o);
Console.WriteLine(" area = " + o.area());
Console.WriteLine(" perimeter = " + o.perimeter());
}
Console.WriteLine("\nGuess I'll clean up now");
// Note: this invokes the virtual destructor
c.Dispose();
s.Dispose();
s = new Square(10);;
Console.WriteLine(Shape.nshapes + " shapes remain");
Console.WriteLine("Goodbye");
}
}