Just trying to confirm my understanding of a colon in a method. I found this post which explains that the code after the colon is run before the called method.
Does this mean with the code below that Shape is run before Circle? And Circle is run before Cylinder?
public abstract class Shape
{
public const double pi = Math.PI;
protected double x, y;
public Shape(double x, double y) => (this.x, this.y) = (x, y);
public abstract double Area();
}
public class Circle : Shape
{
public Circle(double radius) : base(radius, 0) { }
public override double Area() => pi * x * x;
}
public class Cylinder : Circle
{
public Cylinder(double radius, double height) : base(radius) => y = height;
public override double Area() => (2 * base.Area()) + (2 * pi * x * y);
}
public class TestShapes
{
private static void Main()
{
double radius = 2.5;
double height = 3.0;
Circle ring = new Circle(radius);
Cylinder tube = new Cylinder(radius, height);
Console.WriteLine("Area of the circle = {0:F2}", ring.Area());
Console.WriteLine("Area of the cylinder = {0:F2}", tube.Area());
// Keep the console window open in debug mode.
Console.WriteLine("Press any key to exit.");
Console.ReadKey();
}
}
/* Output:
Area of the circle = 19.63
Area of the cylinder = 86.39
*/