从方法中打印出返回值

时间:2014-10-03 12:29:46

标签: c# visual-studio-2010

我需要知道如何从方法

打印出返回值
public double ConvertToFar(double a)
{
    double.TryParse(textBox1.Text, out a);
    double b=9.0;
    double c=5.0;
    double d=32.0;
    double f = a * (b / c) + d;

    return f;
}

public double ConvertToCel(double a,double b,double c,double d,double e)
{
    double.TryParse(textBox1.Text, out a);
    b=32.0;
    c=5.0;
    d=9.0;
    e = (a - b) * (c / d);

    return e;
}

private void button1_Click(object sender, EventArgs e)
{
    if (radioButton1.Checked == true)
    {
        label3.Text = ConvertToFar(double.TryParse(textBox1.Text, out a)).ToString();
    }
}

错误说“'Temperature1.Form1.ConvertToFar(double)'的最佳重载方法匹配'有一些无效的参数”

3 个答案:

答案 0 :(得分:4)

TryParse()返回bool,告诉解析成功与否:

double number;
bool success = double.TryParse(textBox1.Text, out number); // returns true or false

if(success) // check if it was parsed successful
{
label3.Text = ConvertToFar(number).ToString(); // now set it in label
}

答案 1 :(得分:3)

您应该将代码更改为以下代码:

double a;

if(double.TryParse(textBox1.Text, out a))
   label3.Text = ConvertToFar(a).ToString();

TryParse方法返回bool而不是double。具体来说,如果解析成功,则返回true。否则返回false

您收到此错误的原因是ConvertToFar方法将double作为参数,而不是bool

<强>更新

一方面注意,我认为你的两种方法都不需要这个double.TryParse(textBox1.Text, out a);。您已经将double传递给您的方法,该方法与文本框中插入的标识为textBox1的文本相关联。

此外,除了华氏温度之外,不需要将任何其他参数传递给ConvertToCel。您需要进行计算的其他值应该是局部变量,如下所示。您不必改变他们的价值观。这是juharr的一个很好的结果。请在评论中看到以下内容。

我的意思是你的方法应该改变如下:

public double ConvertToFar(double a)
{
    double b=9.0;
    double c=5.0;
    double d=32.0;
    double f = a * (b / c) + d;

    return f;
}

public double ConvertToCel(double a)
{
    b=32.0;
    c=5.0;
    d=9.0;
    e = (a - b) * (c / d);

    return e;
}

答案 2 :(得分:2)

double.TryParse返回一个bool结果,指示解析是否成功。您需要将double值传递给您的方法

if(double.TryParse(textBox1.Text, out a))
   label3.Text = ConvertToFar(a).ToString();