我正在尝试基于状态模式的修改版本使用方法作为状态而不是类来实现一个简单的状态机,如下所示:
private Action<Input> currentState;
private void NextState(Input i) {
currentState(i);
}
private void State1(Input i) {
if( i ... )
currentState = State1;
else
currentState = State2;
}
private void State2(Input i) {
if( i ... )
currentState = State1;
else
currentState = State2;
}
但如果我能这样做会更优雅:
private void NextState(Input i) {
currentState = currentState(i);
}
private Func<xxx> State1() {
if( i ... )
return State1;
else
return State2;
}
但我不知道如何写这个Func
。有没有办法做到这一点?