状态机,使用什么代替枚举来存储多个状态,例如(车辆的驱动器底座高度为 0% 到 100%)

State machine, what to use instead of enum to store multiple states eg ( 0% to 100% for a vehicle's drive base height)

enum RideHeight_State 
    {
        rideHeight = 100
    }

我正在尝试使用 rideHeight 变量,就像它是一个 int 一样,方法是调用:

RideHeight_State.rideHeight -= 10; // Decrement rideHeight State by 10 

稍后在私有 void 函数中...

有没有想过我哪里出错了?

谢谢

枚举本质上是相关的命名常量。您不能在运行时更改它们的值。如果你想要一个状态机,那么使用具有静态属性的 class。

听起来您可能需要这样做:

enum RideHeight_State
{
    rideHeight,
}

private Dictionary<RideHeight_State, int> _state = new Dictionary<RideHeight_State, int>()
{
    { RideHeight_State.rideHeight, 100 },
};

那么这段代码可能会更像您预期的那样工作:

_state[RideHeight_State.rideHeight] -= 10;

Console.WriteLine(_state[RideHeight_State.rideHeight]);

输出 90.

不过您的 enum 命名规则不是很清楚。我不确定在那里建议什么。