在多种方法中使用变量

时间:2014-02-04 23:17:08

标签: c# variables methods

我试图在我的每个方法中使用我的三个变量(num1,num2和oper),但我无法在我的书或互联网上的任何地方找到这样做的方法。我意识到在我的程序准备好之前还有很多工作要做,我会在学习的时候清理它。现在我只需要知道将变量导入不同方法的代码,我不需要修复或改进代码。我希望这是有道理的,我对此很新,请原谅我的无知并忍受我。非常感谢您的阅读!

public class SimpleCalc
{
    public double SimpleCalc(double num1, double num2, string oper)
    {
        Console.Write("Enter first integer: ");
        num1 = Convert.ToDouble(Console.ReadLine());

        Console.Write("Enter operator (+,-,*, / or %)");
        oper = Convert.ToString(Console.ReadLine());

        Console.Write("Enter second integer: ");
        num2 = Convert.ToDouble(Console.ReadLine());

        if (oper == "+");
        return addNumbers();

        if (oper == "-");
        return subtractNumbers();

        if (oper == "*");
        return multiplyNumbers;

        if (oper == "/");
        return divideNumbers;
    }

    public double addNumbers()
    {
        Console.Write("The answer is: ", num1 + num2);
    }

    public double subtractNumbers()
    {
        Console.Write("The answer is: ", num1 - num2);
    }

    public double multiplyNumbers()
    {
        Console.Write("The answer is: ", num1 * num2);
    }

    public double divideNumbers()
    {
        Console.Write("The answer is: ", num1 / num2);
    }
}

1 个答案:

答案 0 :(得分:2)

简单地将它们声明为参数的最简单方法:

public double addNumbers(double num1, double num2)
{
    return num1 + num2;
}

public double subtractNumbers(double num1, double num2)
{
    return num1 - num2;
}

public double multiplyNumbers(double num1, double num2)
{
    return num1 * num2;
}

public double divideNumbers(double num1, double num2)
{
    return num1 / num2;
}

并将参数传递给其他函数,如下所示:

if (oper == "+")
    return addNumbers(num1, num2);

if (oper == "-")
    return subtractNumbers(num1, num2);

if (oper == "*")
    return multiplyNumbers(num1, num2);

if (oper == "/")
    return divideNumbers(num1, num2);

请注意,我修改了您的方法,因为它们需要返回一个值。我还修改了if语句,因为在每个条件之后你有一个分号,这实际上导致一个空条件,然后立即无条件返回。

但是,如果您确实需要在类中存储状态变量并在多个方法中重用它们,则应使用fieldsproperties(通常由字段支持)。