C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 28 を表示中)
■13282 / )  Re[2]: デリゲート実行順序の反転について
□投稿者/ Hirotow (154回)-(2008/01/26(Sat) 18:56:09)
2008/01/26(Sat) 18:58:06 編集(投稿者)
> デリゲートに格納というのは、複数のメソッドを呼ぶデリゲート(マルチキャストデリゲート)のことですか?
> スタックはLinkedListとかListで実装してるのですか?
> 2段重ねとは?
delegate void UndoDelegate();
Stack<Stack<UndoDelegate>> undoBuffer;
みたいにして、
public void FooBar(long pos)
{
    Stack<UndoDelegate> undo;
    //何がしの処理
    gehogeho();
    undo.Push(delegate()
    {
        //アンドゥ処理
        hogehoge();
    }
    //以下繰り返し
    ...
    undoBuffer.Push(undo);
}
みたいな感じです。
リドゥのほうはまだやってません。
> 読解力がないせいでしょうか?
> ちょっと文章が明確でなくてよくわかりません。
いえいえ、わたしの書き方が悪かったですm(__)m
> Hirotowさんなら知ってるかと思いますが、
> マルチキャストデリゲートは呼び出し順は保証されてません。念のため。
よく知らないのでご教示いただけるとうれしいです。
> 普通にundo用スタック、redo用スタックの二つを使えばそれで十分かと思うんですが。
外部からの関数呼び出しを単位としてアンドゥしたいのです。
でもCommandパターンだと泥沼に嵌るのが目に見えてるので安直な方法でやってます。

返信 編集キー/


管理者用

- Child Tree -