point/class-static-factory-methods/Point-before.cs - A clumsy attempt with two overloaded constructors. | Lecture 4 - slide 28 : 29 Program 1 |
using System; public class Point { public enum PointRepresentation {Polar, Rectangular} private double r, a; // polar data repr: radius, angle // Construct a point with polar coordinates public Point(double r, double a){ this.r = r; this.a = a; } // Construct a point, the representation of which depends // on the third parameter. public Point(double par1, double par2, PointRepresentation pr){ if (pr == PointRepresentation.Polar){ r = par1; a = par2; } else { r = RadiusGivenXy(par1,par2); a = AngleGivenXy(par1,par2); } } private static double RadiusGivenXy(double x, double y){ return Math.Sqrt(x * x + y * y); } private static double AngleGivenXy(double x, double y){ return Math.Atan2(y,x); } // Remaining Point operations not shown }