如何在C#中为不同的几何形状(如三角形、正方形、矩形、圆形和梯形)定义五个具有相同名称但参数各异的GetArea()函数来计算各自的面积?
时间: 2024-11-09 21:19:19 浏览: 17
c#在pictureBox控件上绘制矩形框,鼠标点击可拖拽,伸缩
4星 · 用户满意度95%
在C#中,我们可以创建一系列具有共同名称(例如`GetArea`) 的泛型方法,或者为每个特定形状创建一个单独的类并定义一个公共的`GetArea`方法。这里我们展示的是后者,即为每个几何形状创建一个独立的类并重写`GetArea`方法。
首先,定义一个基础形状接口`IShape`:
```csharp
interface IShape
{
double GetArea();
}
```
接着,为每个形状创建一个类并实现`IShape`接口:
```csharp
class Triangle : IShape
{
public double Base { get; set; }
public double Height { get; set; }
public double GetArea()
{
return 0.5 * Base * Height;
}
}
class Square : IShape
{
public double Side { get; set; }
public double GetArea()
{
return Side * Side;
}
}
class Rectangle : IShape
{
public double Length { get; set; }
public double Width { get; set; }
public double GetArea()
{
return Length * Width;
}
}
class Circle : IShape
{
public double Radius { get; set; }
public double GetArea()
{
return Math.PI * Radius * Radius;
}
}
class Trapezoid : IShape
{
public double BaseA { get; set; }
public double BaseB { get; set; }
public double Height { get; set; }
public double GetArea()
{
return (BaseA + BaseB) * Height / 2;
}
}
```
现在,你可以根据需要创建各个形状的对象并调用`GetArea`方法计算面积:
```csharp
IShape triangle = new Triangle { Base = 4, Height = 3 };
double triangleArea = triangle.GetArea(); // 计算三角形面积
IShape square = new Square { Side = 5 };
double squareArea = square.GetArea(); // 计算正方形面积
// ...以此类推
```
阅读全文