【问题标题】:Using variables in multiple methods在多种方法中使用变量
【发布时间】:2014-02-04 23:17:07
【问题描述】:

我正在尝试在我的每个方法中使用我的三个变量(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);
    }
}

【问题讨论】:

  • 你的ifs 什么都不做;你应该删除它们后面的;,否则它只是意味着if (condition) then (empty instruction)
  • 您之前关于同一主题的问题没有任何帮助?
  • @Steve 我没有问过关于这个主题的问题,几天前我遇到了参数问题,但情况完全不同。
  • 除法应该满足num2为零的情况。

标签: c# variables methods


【解决方案1】:

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

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(通常由字段支持)。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    相关资源
    最近更新 更多