public StateHandler(ZhengBaStateMachine.StateType state, Action <DateTime> enter, Action <DateTime> updater, Action <DateTime> leaver)
 {
     this.State        = state;
     this.enterAction  = enter;
     this.updateAction = updater;
     this.leaveAction  = leaver;
 }
 public void SetCurrState(ZhengBaStateMachine.StateType state, DateTime now)
 {
     ZhengBaStateMachine.StateHandler oldHandler = this.Handlers[(int)this._CurrState];
     if (oldHandler != null)
     {
         oldHandler.Leave(now);
     }
     this._CurrState = state;
     ZhengBaStateMachine.StateHandler newHandler = this.Handlers[(int)this._CurrState];
     this._CurrStateEnterTicks = now.Ticks;
     if (newHandler != null)
     {
         newHandler.Enter(now);
     }
 }