我有一个班级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);
然后在initialize方法中设置Cp和H字段。我想在使用setter更新T的值时自动更新H和Cp的值。例如,我将温度设置为1200。
fuel.Temperature = 1200.0;
我希望Cp和H更新。但是,将initialize方法放入setter会导致无限循环。如果不进入无限循环,我该怎么做?
答案 0 :(得分:0)
这很疯狂。这是循环的
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);
}
}