如何使用 C# 更改 getter 中的值?

How to change value in getter using C#?

所以我正在尝试创建一个程序来读取用户的输入。提交输入后,它需要 return 一些数据,但每个值总是 returns 0。

假设我要求用户输入 5 个输入:

firstPaychek, secondPaycheck, finanancialAid, allowances and tips.

我还将这些变量创建为 0.0,因为它们都是双精度的。这是 firstPaycheck

的 setter 和 getter
private double payCheckOne = 0.0;
private double payCheckTwo = 0.0;
private double financialAid = 0.0;
private double allowance = 0.0;
private double TIPS = 0.0;

public double checkOne {
    get { return (payCheckOne / 12); }
    set { payCheckOne = value; }
}

现在,假设我想 return 添加每个值:

public void getTotalIncome() {
    double totalIncome = (payCheckOne + payCheckTwo + financialAid + allowance + TIPS);
    Console.WriteLine("------------ Total Income ------------");
    Console.WriteLine(totalIncome);
    Console.WriteLine("--------------------------------------");
}

我想说,上面所有的代码块都属于一个Income class。我正在尝试在名为 Expenses 的 class 中使用它们,然后我在主 class.

中调用 getMonthly 方法

这是我的repl.it: https://repl.it/@KevinAzuara/Testing

您在本地 Income 变量上设置值,但从 Expenses 的私有成员中显示它们。您需要创建一个 public 费用收入,并在提示输入值时将值设置为 public 费用收入。

所以改变

Income inc = new Income();

成为

public Income inc {get; set;}

然后在 handleOption:

exp.inc = inc;
exp.getMontlyExpenses();

问题是您从错误的收入中获取了值(您没有为其设置值)。我建议您传入 income 对象,而不是在 Expenses class 中进行初始化。像这样:

public void getMontlyExpenses(Income inc) {
    //...
}

并删除声明

Income inc = new Income();

然后你可以这样称呼它

exp.getMontlyExpenses(inc); // which is the right Income object

这就是我认为你的问题。