写了一个方法,它返回相当于厘米参数的英寸,但它说不能隐式地将类型void转换为double。
我如何纠正这个?
下面是代码:
private void button1_Click(object sender, EventArgs e)
{
Double inches = InchEquivalent(10.5);
}
public void InchEquivalent(double centimeters)
{
double answer;
answer = centimeters * 0.394;
MessageBox.Show(answer.ToString());
return;
}
答案 0 :(得分:2)
正如评论中的人试图告诉你的那样,你必须给这个函数一个这样的返回类型:
public double InchEquivalent(double centimeters)
{
var answer = centimeters * 0.394;
MessageBox.Show(answer.ToString());
return answer;
}
请注意double
而不是void
中的public double InchEquivalent
和return answer;
,而不只是return;
但是我建议保持函数纯并且只负责一件事(那里不要做MessageBox.Show
(我猜它只是用于调试),以及如果您愿意,可以将其设为静态:
private void button1_Click(object sender, EventArgs e)
{
var inches = Centimeters2Inches(10.5);
MessageBox.Show(inches.ToString());
}
public static double Centimeters2Inches(double centimeters)
{
return centimeters * 0.394;
}
答案 1 :(得分:1)
好的,你有一个可以进行单位转换的功能。单位转换输入厘米和输出英寸。很好。
输入通过功能参数完成。很棒的选择。
使用MessageBox
完成输出以向用户显示。这可能适用于快速测试和一次性代码,但从长远来看,这不是一个好方法。基本上有两个问题:
更好的设计是转换为输出以英寸为单位的值作为返回值,并让其他代码处理演示文稿。