可能重复:
可观察堆栈和队列
我的应用程序中有一个stack<String>
。我可以使用Stack.Push(Object)
和Stack.Pop()
。但是我想知道何时在堆栈中添加了一个新对象。我不知道它是否可能。有什么建议么?
创建从 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
}