■No13283 (Tom Yama さん) に返信
> ■No13282 (Hirotow さん) に返信
>>Stack<Stack<UndoDelegate>> undoBuffer;
> これは?
> 何のために作っていて、どこで使うものなのでしょうか?
> 端折らないで、ちゃんと説明してください。
公開メソッドごとのごとの処理がローカル変数undoにスタックされ、
それをメソッド終了時にundoBufferにスタックしています。
アンドゥするときは、undoBufferから(上行のundoを)ひとつだけpopして、
それの中身をpopしつつ実行しています。
public void Undo()
{
Stack<UndoDelegate> undo = undoBuffer.Pop();
while(undo.Count > 0)
{
undo.pop()();
}
}
|