了解getter和setter

时间:2018-06-29 04:26:13

标签: c#

我是c#的新手,我想知道为什么我尝试做的事不起作用。

 private int equation;
 public int Equation { get => equation; set => equation = value; }

    public void GainCaloriesMale(User user)
    {
        Equation = ((10 * user.Weight) + (6.25 * user.Height) - (5 * user.Age) + 5) + 250 + add;
        Console.WriteLine("\nBased on the Mifflin – St Jeor Formula You need to eat {0} Kalories a day To Gain Weight ", equation);
    }
  

错误CS0266无法将类型'double'隐式转换为'int'。一个   存在显式转换(您是否缺少演员表?)

方程式后的所有内容都以红色加下划线。

谢谢你。

1 个答案:

答案 0 :(得分:2)

您正在将int 6.25 相乘,这是一个double文字,它会将右侧表达式的类型转换为双精度型。

您必须按如下所示明确地进行投射。这将删除表达式结果的小数部分。

Equation =(int) ((10 * user.Weight) + (6.25 * user.Height) - (5 * user.Age) + 5) + 250 + add;

或者您也可以选择将变量equation的类型也更改为两倍。