错误运算符'*'不能应用于'method group'和'double'类型的操作数
问题描述:
我相信我想要做的事很简单,但是我得到错误。 运算符'*'不能应用于'方法组'和'双'类型的操作数错误运算符'*'不能应用于'method group'和'double'类型的操作数
如果选中该复选框,我想将日存储的天数乘以19.95。我得到的错误说,我不能,因为dayrental是一种方法。 如何从dayrental中获得价值,以便在19.95年之前实现倍增?
private void button1_Click(object sender, EventArgs e)
{
double rental;
dayrental();
if (checkBox1.Checked == true)
rental = dayrental * 19.95;
label4.Text = Convert.ToString(rental);
}
private void label4_Click(object sender, EventArgs e)
{
}
public void dayrental()
{
var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
var rentalDays = timeSpan.Days;
//label4.Text = Convert.ToString(rentalDays);
}
答
你的语法只是有点关闭(在函数调用之后缺少括号并且没有为你的函数指定返回类型)。
if (checkBox1.Checked == true)
rental = dayrental() * 19.95;
public double dayrental()
{
var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
return (double) timeSpan.Days;
}
答
在C#methodcall总是由一对大括号表示,而该方法本身是由它的名字寻址。所以dayrental()
是dayrental的返回值,而dayrental
是dayrental的方法。因此你将方法dayrental乘以19.95显然失败。 你所要做的是:
rental = dayrental() * 19.95;
而且dayrental返回void所以youm飞行想将其更改为
public double dayrental()
,并返回一定的价值。
答
dayrental
是一个返回void的函数。
它没有价值,你不能用19
答
你缺少从你的函数调用dayrental,这是造成编译器认为你的paranthesis相乘的指的方法本身,而不是结果对该方法的调用。
rental = dayrental * 19.95;
应该
rental = dayrental() * 19.95;
答
这样做:
private void button1_Click(object sender, EventArgs e)
{
double rental;
var dayRental = dayrental();
if(checkBox1.Checked == true)
rental = dayrental * 19.95;
label4.Text = Convert.ToString(rental);
}
private void label4_Click(object sender, EventArgs e)
{
}
public int dayrental()
{
var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
var rentalDays = timeSpan.Days;
return rentalDays;
}