C # обновить поля, используя установщик другого поля - PullRequest
0 голосов
/ 09 июня 2018

У меня есть класс Fuel1:

class Fuel1
{
    public double Temperaure                 
    {
        get { return Temperaure; }
        set
        {
            Temperaure = value;
            initialize(Temperaure);
        }
    }

    public double Cp { get; private set; }  // J/mol.K
    public double H { get; private set; }  // J/mol

    public Fuel1(double Temperaure)
    {
        this.Temperaure = Temperaure;
        initialize(Temperaure);
    }

    private double calculate_cp(double te)
    {
        // calculate Cp
    }

    private double calculate_h(double te)
    {
        // calculate H
    }

    private void initialize(double temperature)
    {
        H = calculate_h(temperature);
        Cp = calculate_cp(temperature);
    }
}

Класс инициализируется с такой температурой:

var fuel = new Fuel1(1000.0);

, а затем поля Cp и H устанавливаются в методе initialize.Я хочу обновить значения H и Cp автоматически при обновлении значения T с помощью установщика.Например, я установил температуру на 1200.

fuel.Temperature = 1200.0;

Я ожидаю, что Cp и H обновятся.Однако помещение метода инициализации в установщик вызывает бесконечный цикл.Как мне это сделать, не запуская бесконечный цикл?

1 Ответ

0 голосов
/ 09 июня 2018

Это безумие.Это круговой

public double T                 
{
    get { return T; }
    set
    {
        T = value;
        initialize(T);
    }
}

Вам нужно поле поддержки

private double t;
public double T                 
{
    get { return t; }
    set 
    {    
        t = value;
        initialize(t);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...