ApplyChange() public abstract method

public abstract ApplyChange ( ) : UndoRedoChange
return UndoRedoChange
        public void Redo()
        {
            if (undoListCount == changeList.Count)
            {
                return;
            }

            UndoRedoChange change = (UndoRedoChange)changeList [undoListCount++];

            if (change.CheckValid())
            {
                UndoRedoChange res = change.ApplyChange();
                if (res != null)
                {
                    changeList [undoListCount - 1] = res;
                }
                else
                {
                    // Redo failed
                    undoListCount--;
                    changeList.RemoveAt(undoListCount);
                }
            }
            else
            {
                changeList.RemoveAt(--undoListCount);
                Redo();
            }
        }
        public void Undo()
        {
            if (undoListCount == 0)
            {
                return;
            }

            UndoRedoChange change = (UndoRedoChange)changeList [--undoListCount];

            if (change.CheckValid())
            {
                UndoRedoChange res = change.ApplyChange();
                if (res != null)
                {
                    changeList [undoListCount] = res;
                }
                else
                {
                    // Undo failed
                    changeList.RemoveAt(undoListCount);
                }
            }
            else
            {
                changeList.RemoveAt(undoListCount);
                Undo();
            }
        }