2010-10-25 66 views
1

我相信我想要做的事很簡單,但是我得到錯誤。 運算符'*'不能應用於'方法組'和'雙'類型的操作數錯誤運算符'*'不能應用於'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); 
    } 

回答

4

你的語法只是有點關閉(在函數調用之後缺少括號並且沒有爲你的函數指定返回類型)。

if (checkBox1.Checked == true) 
    rental = dayrental() * 19.95; 

public double dayrental() 
{ 
    var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value; 
    return (double) timeSpan.Days; 
} 
0

在C#methodcall總是由一對大括號表示,而該方法本身是由它的名字尋址。所以dayrental()是dayrental的返回值,而dayrental是dayrental的方法。因此你將方法dayrental乘以19.95顯然失敗。 你所要做的是:

rental = dayrental() * 19.95; 

而且dayrental返回void所以youm飛行想將其更改爲

public double dayrental() 

,並返回一定的價值。

2

dayrental是一個返回void的函數。

它沒有價值,你不能用19

0

你缺少從你的函數調用dayrental,這是造成編譯器認爲你的paranthesis相乘的指的方法本身,而不是結果對該方法的調用。

rental = dayrental * 19.95; 

應該

rental = dayrental() * 19.95; 
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; 
} 
相關問題