代码之家  ›  专栏  ›  技术社区  ›  user770022

错误1运算符“*”不能应用于“method group”和“double”类型的操作数

  •  1
  • user770022  · 技术社区  · 15 年前

    我相信我想做的很简单,但我犯了错误。 运算符“*”不能应用于“method group”和“double”类型的操作数

    如果勾选了复选框,我想用dayrental中存储的天数乘以19.95。我得到一个错误,说我不能,因为日租是一种方法。 如何从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 回复  |  直到 15 年前
        1
  •  4
  •   Mark Synowiec    15 年前

    您的语法有点离谱(函数调用后缺少括号,并且没有为您的函数指定返回类型)。

    if (checkBox1.Checked == true)
        rental = dayrental() * 19.95;
    
    public double dayrental()
    {
        var timeSpan = dateTimePicker2.Value - dateTimePicker1.Value;
        return (double) timeSpan.Days;
    }
    
        2
  •  2
  •   Itay Karo    15 年前

    dayrental 是返回void的函数。

    它没有价值,你不能把它乘以19

        3
  •  0
  •   Steve Whitfield    15 年前

    rental = dayrental * 19.95;
    

    应该是

    rental = dayrental() * 19.95;
    
        4
  •  0
  •   Leniel Maccaferri    15 年前

    执行以下操作:

    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;
    }
    
        5
  •  0
  •   Grizzly    15 年前

    在c#中,方法调用总是由一对大括号表示,而方法本身则由其名称寻址。所以 dayrental() dayrental 是日租的方法。因此,您将dayreart方法乘以19.95,显然失败了。 你要做的是:

    rental = dayrental() * 19.95;
    

    日租还无效,所以你可以改成

     public double dayrental()
    

    并返回一些值。