Stateless 简介
Stateless 是基于 C# 实现状态机的库。详见 Github - Stateless
Stateless 简单用法
1 - 定义状态(State)以及不同状态间转换的触发器(Trigger)。
简例中用枚举类型定义 State 及 Trigger:
enum State
{
state1,
state2,
state3
}
enum Trigger
{
trigger1,
trigger2
}
2 - 定义状态机对象:
StateMachine<State, Trigger> _machine = new StateMachine<State, Trigger>(State.state1);
某一时刻,状态机 _machine
处于某一状态,比如 state1
,此时通过不同的 Trigger
可以触发该状态机转变到不同的状态。至于,状态机处于各个状态时,不同的 Trigger
会触发其转换到何种状态,需要对状态机进行配置。
3 - 配置状态机对象:
_machine.Config(State.state1)
.Permit(Trigger.trigger1, State.state2)
.