UndoRedoStack
κ°μ
IUndoableAction
public interface IUndoableAction
{
void Do();
void Undo();
}ActionBlock
public class ActionBlock : IUndoableAction
{
private readonly IUndoableAction[] actionSequence;
public ActionBlock(params IUndoableAction[] actionSequence)
{
this.actionSequence = actionSequence;
}
public void Do()
{
foreach (var action in actionSequence)
action.Do();
}
public void Undo()
{
foreach (var action in actionSequence.Reverse())
action.Undo();
}
public override string ToString()
{
return string.Join(",", actionSequence.Select(a => a.ToString()));
}
}UndoRedoStack
Reference.
Last updated