试图输出功能结果

时间:2015-09-09 10:50:06

标签: c# oop console

我正在制作迷你计算器。

我的代码:

public class Calc
{
    public double a = 1;
    public double b = 1;
    public double plus()
    {
        return a+b;
    }
    public double minus()
    {
        return a-b;
    }
}

public void Main()
{
    Calc sq = new Calc();
    Console.WriteLine("\na+b:");
    Console.WriteLine(sq.plus());
    Console.WriteLine("\na-b:");
    Console.WriteLine(sq.minus());
}

我的问题:

  1. 我想在没有Console.WriteLine的情况下显示函数的结果,我应该在代码中更改什么?

  2. 这个代码是OOP吗?我想改进我的代码,但我不知道该怎么做。我应该使用这样的变量吗?

    Console.WriteLine(sq.plus(a, b));

1 个答案:

答案 0 :(得分:1)

您正在编写功能代码,因此OOP不适合这里。您的plusminus方法是确定性的,因此将它们转换为静态的线程安全函数。

你不应该将WriteLine类调用到Calc类中,然后混合关注点,而不是将它们分开,因为类会负责计算和显示计算结果。这使得测试更加困难,因此您的代码变得难以维护。所以我把它重写为:

public static class Calc
{
    public static double Plus(double a, double b)
    {
        return a+b;
    }

    public static double Minus(double a, double b)
    {
        return a-b;
    }
}

public void Main()
{
    Console.WriteLine("\na+b:");
    Console.WriteLine(Calc.Plus(1,1));
    Console.WriteLine("\na-b:");
    Console.WriteLine(Calc.Minus(1,1));
}