C# 使用另一个字段的 setter 更新字段
C# update fields using another field's setter
我有一个 class 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);
}
}
class 的温度初始化如下:
var fuel = new Fuel1(1000.0);
然后在初始化方法中设置Cp和H字段。当我使用 setter 更新 T 的值时,我想自动更新 H 和 Cp 的值。例如我把温度设置为1200.
fuel.Temperature = 1200.0;
希望Cp和H更新。但是,将初始化方法放在 setter 中会导致无限循环。在没有 运行 进入无限循环的情况下我应该怎么做?
这太疯狂了。这是循环
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);
}
}
我有一个 class 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);
}
}
class 的温度初始化如下:
var fuel = new Fuel1(1000.0);
然后在初始化方法中设置Cp和H字段。当我使用 setter 更新 T 的值时,我想自动更新 H 和 Cp 的值。例如我把温度设置为1200.
fuel.Temperature = 1200.0;
希望Cp和H更新。但是,将初始化方法放在 setter 中会导致无限循环。在没有 运行 进入无限循环的情况下我应该怎么做?
这太疯狂了。这是循环
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);
}
}