有没有办法从其他方法调用变量?

时间:2019-09-16 18:25:00

标签: c#

我正在尝试构建一个BMI计算器,而主函数中唯一可以做的就是方法调用。每当我运行以下代码时,计算答案都不会打印。我该如何解决?

public static Double EnterWeight(object sender, EventArgs e)
{
    Console.Write("Enter Your Wieght In Pounds: ");
    double Rweight = Convert.ToDouble(Console.ReadLine());
    return Rweight;
}

public static double EnterHeight(object sender, EventArgs e)
{
    Console.Write("Enter Your Height in Inches: ");
    double Rheight = Convert.ToDouble(Console.ReadLine());
    return Rheight;
}

public static double Calculation(double height, double weight)
{
    double BMI = (weight / Math.Pow(height, 2) * 703);
    return BMI;
}

static void Main(string[] args)
{
    string name = EnterName();
    //Console.WriteLine(name);
    double weight = EnterWeight();
    //Console.WriteLine(weight);
    double height = EnterHeight(object sender, EventArgs e);
    //Console.WriteLine(height);
    double BMI = Calculation(height, weight);
    Console.WriteLine("Your BMI is: ", BMI);
}

我的测试中还有一些额外的内容。

结果只是空白

2 个答案:

答案 0 :(得分:0)

尽管代码很小,但看起来好像有几个问题。首先,您定义采用未使用参数的方法,例如object senderEventArgs e。仅当在方法内部使用参数时,才应定义该方法的参数,这样就可以根据需要删除它们。

第二,当您调用EnterWeight时,您是在方法调用内定义变量,而不是事先定义它们,然后使用变量名将其传递(这是解决此问题的方法)问题)。但是由于该方法实际上并不需要它们,因此可以将它们从方法中删除,从而从调用中删除。

最后,编写方法以从用户获取强类型输入时,有时最好创建一个更灵活的方法,该方法接受用于输入的“提示”字符串,然后使用{{1 }}方法在一个循环中,不断循环直到它们输入有效的输入。这样,您可以重复使用相同的方法从用户那里获取TryParse,而只是传递不同的提示。

例如:

double

答案 1 :(得分:0)

您使用的Console.WriteLine错误。您需要使用{argumentNumber}来指示要打印的参数以及字符串中的位置。考虑以下内容(为了使您的代码得以编译,我必须进行一些其他调整。但是,为了回答您的直接问题,由于使用Console.WriteLine有点错误,因此您的BMI没有打印出来。

    public static Double EnterWeight()
    {
        Console.Write("Enter Your Wieght In Pounds: ");
        double Rweight = Convert.ToDouble(Console.ReadLine());
        return Rweight;
    }

    public static double EnterHeight()
    {
        Console.Write("Enter Your Height in Inches: ");
        double Rheight = Convert.ToDouble(Console.ReadLine());
        return Rheight;
    }

    public static double Calculation(double height, double weight)
    {
        double BMI = (weight / Math.Pow(height, 2) * 703);
        return BMI;
    }
    static void Main(string[] args)
    {
        //string name = EnterName();
        //Console.WriteLine(name);
        double weight = EnterWeight();
        //Console.WriteLine(weight);
        double height = EnterHeight();
        //Console.WriteLine(height);
        double BMI = Calculation(height, weight);

        // Notice the {0}. I tell it where in the string to print the
        // argument I passed in out, and the number indicates which argument 
        // to use. Most of .NET formatting works like this.
        Console.WriteLine("Your BMI is: {0}", BMI); 


    }

另一种策略是使用$“”字符串,您可以在其中执行以下操作:

        Console.WriteLine($"Your BMI is: {BMI}");