1

重複の可能性:
監視可能なスタックとキュー

アプリケーションに がありstack<String>ます。Stack.Push(Object)とを使用できますStack.Pop()。しかし、スタックに新しいオブジェクトが追加されるたびに知りたいです。それが可能かどうかさえわかりません。助言がありますか?

4

1 に答える 1

4

Stack から継承するクラスを作成します。

class StackHolder: Stack
{

    public delegate void ItemAddedDelegate(object item);
    public event ItemAddedDelegate ItemAdded;

    public override void Push(object obj)
    {
        base.Push(obj);
        if (ItemAdded != null)
        {
            ItemAdded(obj);
        }
    }
}

そして、これを使用する方法は次のとおりです。

        StackHolder sh = new StackHolder();
        sh.ItemAdded += new StackHolder.ItemAddedDelegate(sh_ItemAdded);

イベントのハンドラーは次のとおりです。

    void sh_ItemAdded(object item)
    {
       //TODO: handle event
    }
于 2012-11-29T16:03:07.850 に答える