错误1运算符'*'不能应用于'方法组'和'双精度'类型的操作数

时间:2010-10-25 14:56:17

标签: c# .net

我相信我想做的事情非常简单,但我得到了错误。 运算符'*'不能应用于'方法组'和'双'

类型的操作数

如果选中该复选框,我想将已存储在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);   
    }

5 个答案:

答案 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;
}