Как изменить значение в геттере, используя C#? - PullRequest
0 голосов
/ 30 марта 2020

Итак, я пытаюсь создать программу, которая читает ввод от пользователя. Как только входные данные отправлены, ему нужно вернуть некоторые данные, но он всегда возвращает 0 для каждого значения.

Допустим, я прошу пользователя ввести 5 входных данных:

firstPaychek, secondPaycheck, finanancialAid, allowances and tips .

Я также создал эти переменные в 0.0, так как все они двойные. Здесь это установщик и получатель firstPaycheck

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; }
}

Теперь давайте скажем, что я хотел бы вернуть добавление каждого значения:

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

Я хотел бы сказать, что все блоки кода выше принадлежат классу Income. Я пытаюсь использовать их в классе под названием Расходы, и оттуда я вызываю метод getMonthly в своем основном классе.

Вот мой repl.it: https://repl.it/@KevinAzuara / Testing

Ответы [ 2 ]

1 голос
/ 30 марта 2020

Дело в том, что вы получаете значения от неправильного дохода (тот, для которого вы не устанавливаете значения). Я бы посоветовал вам передать объект дохода вместо инициализации внутри класса Expenses. Примерно так:

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

И удалите объявление

Income inc = new Income();

Тогда вы можете назвать его как

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

Я думаю, что ваша проблема в этом.

0 голосов
/ 30 марта 2020

Вы устанавливаете значения в локальной переменной Income, но отображаете их из частного члена Расходов. Вам необходимо создать публикуемый c Доход по расходам и, при запросе значений, установить значения для публикуемых c Доход по расходам.

Поэтому измените

Income inc = new Income();

быть

public Income inc {get; set;}

Тогда в handleOption:

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