我相信我想做的事情非常简单,但我得到了错误。 运算符'*'不能应用于'方法组'和'双'
类型的操作数如果选中该复选框,我想将已存储在dayrental中的天数乘以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);
}
答案 0 :(得分:4)
您的语法稍微偏离(函数调用后缺少括号,并且没有为函数指定返回类型)。
if (checkBox1.Checked == true)
rental = dayrental() * 19.95;
public double dayrental()
{
var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
return (double) timeSpan.Days;
}
答案 1 :(得分:2)
dayrental
是一个返回void的函数。
它没有价值,你不能将它乘以19
答案 2 :(得分:0)
在c#中,methodcall总是由一对大括号表示,而方法本身则由它的名称来表示。所以dayrental()
是dayrental的回报值,而dayrental
是dayrental的方法。因此,你将方法dayrental乘以显然失败的19.95。
你要做的是:
rental = dayrental() * 19.95;
此外,dayrental返回无效,因此您需要将其更改为
public double dayrental()
并返回一些值。
答案 3 :(得分:0)
你缺少函数调用dayrental的paranthesis,这导致编译器认为你正在引用方法本身,而不是调用该方法的结果。
rental = dayrental * 19.95;
应该是
rental = dayrental() * 19.95;
答案 4 :(得分:0)
这样做:
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;
}