Interface IShape:
namespace exercise74.Models;
internal interface IShape
{
public double CalculateArea();
public double CalculatePerimeter();
}
Classe Circle:
namespace exercise74.Models;
internal class Circle : IShape
{
private double _pi => 3.14;
private double _area;
private double _perimeter;
public double Radius { get; }
public Circle(double radius)
{
Radius = radius;
}
public double CalculateArea()
{
_area = _pi * (Radius * Radius);
Console.WriteLine($"The area of the circle is equal to {_area:F2}");
return _area;
}
public double CalculatePerimeter()
{
_perimeter = 2 * _pi * Radius;
Console.WriteLine($"The perimeter of the circle is equal to {_perimeter:F2}");
return _perimeter;
}
}
Classe Rectangle:
namespace exercise74.Models;
internal class Rectangle : IShape
{
private double _area;
private double _perimeter;
public double Height { get; }
public double Width { get; }
public Rectangle(double height, double width)
{
Height = height;
Width = width;
}
public double CalculateArea()
{
_area = Height * Width;
Console.WriteLine($"The area of the rectangle is equal to {_area:F2}");
return _area;
}
public double CalculatePerimeter()
{
_perimeter = (Height * 2) + (Width * 2);
Console.WriteLine($"The perimeter of the rectangle is equal to {_perimeter:F2}");
return _perimeter;
}
}
Instâncias:
using exercise74.Models;
Circle circle = new Circle(10);
circle.CalculateArea();
circle.CalculatePerimeter();
Console.WriteLine();
Rectangle rectangle = new Rectangle(19, 10);
rectangle.CalculateArea();
rectangle.CalculatePerimeter();
Console.WriteLine();