public CompoundListMemento <T, U> Restore(T target) { CompoundListMemento <T, U> inverse = new CompoundListMemento <T, U>(pointerIndex); //starts from the last action for (int i = mementos.Count - 1; i >= 0; i--) { inverse.Add(mementos[i].Restore(target)); } return(inverse); }
public void CheckPoint(IListTOfVMemento <T, U> m) { if (inUndoRedo) { throw new InvalidOperationException("Involking do within an undo/redo action."); } if (tempMemento == null) { _Do(m); } else { tempMemento.Add(m); } }