我正在Unity制作一个简单的Calorimetry应用程序来测试我在课堂上学到的东西。在计算热量时,您需要猜测温度的变化(如最终温度减去初始温度)是否实际超过材料熔点或沸点。
例如,假设我有一个物体,我将它从-15°C加热到30°C,它的融合点是10°C,这意味着物体会改变相位,因此需要进行不同的计算。 / p>
-15℃---------- 10℃--------- 30°C
我显然可以知道它改变了阶段,但有没有办法让程序检查值是否大于或小于既定的融合点,然后选择合适的计算?
PS:我的温度值存储在名为iTemp
和fTemp
的变量中,而融合点和沸点存储在名为objMat
的单独结构中,并且是名为{的变量分别为{1}}和fusPoint
。
答案 0 :(得分:0)
目前尚不清楚你在问什么。也许你可以使Temperature
成为一个属性,并检查融合点是否已在setter中交叉。
class Temp
{
private readonly decimal _fusion;
private decimal _temp;
public decimal Temperature
{
get { return _temp; }
set
{
if ((_temp < _fusion && value > _fusion) || (_temp > _fusion && value < _fusion))
{
// do stuff
}
_temp = value;
}
}
public Temp(decimal fusion, decimal initial)
{
_fusion = fusion;
_temp = initial;
}
}