我有一个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会导致无限循环。我应该如何做到这一点,而不会陷入无限循环?
发布于 2018-06-09 05:37:31
这太疯狂了。这是循环的
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);
}
}
https://stackoverflow.com/questions/50768643
复制相似问题