我正在尝试基于修改版的状态模式,使用方法作为状态而不是类来实现简单的状态机,就像这样:
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
函数。有没有什么方法可以做到这一点呢?