我需要知道如何从方法
打印出返回值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)'的最佳重载方法匹配'有一些无效的参数”
答案 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();