【问题标题】:Understanding getter and setter了解 getter 和 setter
【发布时间】:2018-12-08 05:01:32
【问题描述】:

我是 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”。一个 存在显式转换(您是否缺少演员表?)

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

感谢您的宝贵时间。

【问题讨论】:

标签: c#


【解决方案1】:

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

要么你必须明确地转换它,如下所示。这将删除表达式结果的小数部分。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-17
    • 2016-02-24
    • 2017-09-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多