这是我在这个平台上的第一个问题。你是我的神! 我有一个小项目,我学习如何在C#中看到OOP。 我有4个clases(形状,正方形,圆形,三角形) Square类实现了2个函数(Area和perimeter)和一个实现了这些函数的GetPrint方法。其他类已经实现了区域和周边以及每个表单所需的公式。 现在我必须创建另一个具有2个接口(ReadData和PrintData)的ShapeFactory类。 我需要一种方法来在ReadData中实现一个函数,该函数将在控制台中创建的所有表单存储在列表中,然后在我选择选项4(退出)后显示存储在该表中的区域和周长。 例如:
do
{
Console.ReadKey();
Console.WriteLine("Choose a form:");
Console.WriteLine("1:Triangle");
Console.WriteLine("2:Square");
Console.WriteLine("3:Circle");
Console.WriteLine("4:Exit");
Int32.TryParse(Console.ReadLine(), out i);
if (i == 1)
{
Console.WriteLine("l1:");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("l2:");
int m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("l3:");
int q = Convert.ToInt32(Console.ReadLine());
Triangle t = new Triangle(n, m, q);
t.GetPrint();
Console.ReadKey();
}
我需要用户在控制台中为此三角形添加的所有信息都存储在具有ReadData接口的表中,并使用PrintData接口从该表打印。我试图实现PrintData以使用第一个想法GetPrint,它在IF语句结束后显示控制台中的区域和周长。
答案 0 :(得分:1)
我很想知道你想要发生什么......
让方形,圆形和三角形继承形状......
public class Circle : Shape
关于程序的主要方法..
List<Shape> shapes = new List<Shape>();
do
{
Console.ReadKey();
Console.WriteLine("Choose a form:");
Console.WriteLine("1:Triangle");
Console.WriteLine("2:Square");
Console.WriteLine("3:Circle");
Console.WriteLine("4:Exit");
Int32.TryParse(Console.ReadLine(), out i);
if (i == 1)
{
Console.WriteLine("l1:");
int n = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("l2:");
int m = Convert.ToInt32(Console.ReadLine());
Console.WriteLine("l3:");
int q = Convert.ToInt32(Console.ReadLine());
Triangle t = new Triangle(n, m, q);
shapes.Add(t);
t.GetPrint();
Console.ReadKey();
}
// do the same for square and circle
// shapes.Add(variable);
在应用程序结束之前退出..
你可以
foreach(var shape in shapes)
{
Console.WriteLine("Area: {0}\nPerimeter: {1}\n", shape.Area, shape.Perimeter);
}
不确定这是否是你想要的......