public void ChangeState(T token) { if (isFirst) { if (nextState == null) { if (MainChange != null) { MainChange.Invoke(); } } if (EachChange != null) { EachChange.Invoke(token); } } if (nextState == null) { nextState = new WaitState <T>(token, false); } else { nextState.ChangeState(token); } }
/// <summary> /// 激发状态(注册了一个新的事件) /// </summary> /// <param name="token"></param> public void ExciteState(T token) { if (isFirst) { if (nextState == null) { if (MainExcite != null) { MainExcite.Invoke(); } } if (EachExcite != null) { EachExcite.Invoke(token); } } if (nextState == null) { nextState = new WaitState <T>(token, false); } else { nextState.ExciteState(token); } }
public void ReductionState(T token) { if (nextState.StateToken as object == token as object) { nextState = nextState.nextState; if (isFirst) { if (EachReduction != null) { EachReduction.Invoke(token); } if (nextState == null && addAlready) { MainReduction.Invoke(); } } } else { nextState.ReductionState(token); } }