C# 如何检查一个值的变化是否与另一个值交叉

C# 如何检查一个值的变化是否与另一个值交叉,c#,physics,calculation,variation,C#,Physics,Calculation,Variation,我正在Unity中制作一个简单的量热计应用程序,来测试我在课堂上学到的东西。在计算热量时,您需要猜测温度的变化(例如,最终温度减去初始温度)是否实际超过了材料的熔点或沸点 例如,假设我有一个物体,我把它从-15°C加热到30°C,它的熔点是10°C,这意味着物体改变了相位,因此需要不同的计算 -15摄氏度----10摄氏度----30摄氏度 我可以清楚地知道它改变了阶段,但是有没有办法让程序检查值的变化是否大于或小于确定的融合点,然后选择适当的计算 注:我的温度值存储在名为iTemp和fTemp

我正在Unity中制作一个简单的量热计应用程序,来测试我在课堂上学到的东西。在计算热量时,您需要猜测温度的变化(例如,最终温度减去初始温度)是否实际超过了材料的熔点或沸点

例如,假设我有一个物体,我把它从-15°C加热到30°C,它的熔点是10°C,这意味着物体改变了相位,因此需要不同的计算

-15摄氏度----10摄氏度----30摄氏度

我可以清楚地知道它改变了阶段,但是有没有办法让程序检查值的变化是否大于或小于确定的融合点,然后选择适当的计算


注:我的温度值存储在名为
iTemp
fTemp
的变量中,而熔点和沸点存储在名为
objMat
的单独结构中,分别是名为
fusPoint
gasPoint
的变量。

不清楚你在问什么。也许您可以将
温度
设置为属性,并检查熔合点是否已在设定器中穿过

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;
    }
}
class-Temp
{
私有只读十进制融合;
专用十进制温度;
公共十进制温度
{
获取{return\u temp;}
设置
{
如果(_temp<_fusion&value>_fusion)| |(_temp>_fusion&value<_fusion))
{
//做事
}
_温度=值;
}
}
公共温度(十进制融合,十进制首字母)
{
_融合=融合;
_温度=初始温度;
}
}

我可以在结构内部使用属性吗?是的,属性等也可以在结构内部使用