C# - 我想要一个创建列表oop的方法

时间:2016-04-21 08:48:15

标签: c# oop

这是我在这个平台上的第一个问题。你是我的神! 我有一个小项目,我学习如何在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语句结束后显示控制台中的区域和周长。

1 个答案:

答案 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); 
}

不确定这是否是你想要的......