【发布时间】:2012-11-17 18:05:36
【问题描述】:
我的应用程序中有一个stack<String>。我可以使用Stack.Push(Object) 和Stack.Pop()。但是我想知道何时在堆栈中添加了一个新对象。我不知道它是否可能。有什么建议吗?
【问题讨论】:
我的应用程序中有一个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
}
【讨论】:
(object sender, EventArgs e)
StackHolder<T>,里面有Stack<T>。