using System; namespace Indyjug { public abstract class Shape { private String unitOfMeasurement; public String UnitOfMeasurement { get { return unitOfMeasurement; } set { unitOfMeasurement = value; } } } public abstract class Shape2D : Shape { public virtual double ComputePerimeter() { return 0.0; } public virtual double ComputeArea() { return 0.0; } } public class Circle : Shape2D { private double radius = 0; private const double pi = 3.1415; public Circle(double r) { radius = r; } public override double ComputePerimeter() { return 2.0 * pi * radius; } public override double ComputeArea() { return pi * radius * radius; } public static void Main(String[] args) { // try { if (args.Length != 2) { Console.WriteLine("Please enter the radius and unit of measurement"); Environment.Exit(-1); } Shape2D shape = new Circle(Double.Parse(args[0])); shape.UnitOfMeasurement = args[1]; Console.WriteLine("Perimeter = " + shape.ComputePerimeter() + " " + shape.UnitOfMeasurement); Console.WriteLine("Area = " + shape.ComputeArea() + " " + shape.UnitOfMeasurement); Environment.Exit(0); // } // catch (Exception e) { // } } } }