private TState ChangeState <TState>() where TState : class, IExitableState { _activeState?.Exit(); TState state = GetState <TState>(); _activeState = state; return(state); }
private TState ChangeState <TState>() where TState : IExitableState { currentState?.Exit(); TState state = GetState <TState>(); currentState = state; return(state); }
private TState ChangeState <TState>() where TState : class, IExitableState { _activeState?.Exit(); var newState = GetState <TState>(); _activeState = newState; return(newState); }