C#在堆栈结构上调用Pop时检测

C#在堆栈结构上调用Pop时检测,c#,collections,properties,stack,setter,C#,Collections,Properties,Stack,Setter,我正在寻找一种方法来检查在我的堆栈结构上何时调用Pop()函数。我目前正在使用一个扩展setter属性,但是。Pop()似乎不会触发setter,除非我更改引用本身,否则我几乎无法确定何时实际更改了集合。关于这个有什么建议吗?同样,我只关心Pop()函数,我不想知道何时调用Push或任何其他可以修改集合的内容。您必须创建自己的集合(很可能只是包装一个堆栈引用),以便在给定操作时创建事件并触发它(在这种情况下,任何集合都会因其声音而发生变化)执行。除了偶数逻辑之外,您只需为堆栈的每个公共成员创建一

我正在寻找一种方法来检查在我的
堆栈
结构上何时调用
Pop()
函数。我目前正在使用一个扩展setter属性,但是
。Pop()
似乎不会触发setter,除非我更改引用本身,否则我几乎无法确定何时实际更改了集合。关于这个有什么建议吗?同样,我只关心
Pop()
函数,我不想知道何时调用Push或任何其他可以修改集合的内容。

您必须创建自己的集合(很可能只是包装一个
堆栈
引用),以便在给定操作时创建事件并触发它(在这种情况下,任何集合都会因其声音而发生变化)执行。除了偶数逻辑之外,您只需为
堆栈的每个公共成员创建一个成员,并让它简单地将调用转发到私有
堆栈
实例。

在您回答我只需在Pop上触发此事件之前1-2秒添加了一个小但重要的细节,顺便说一句,我已经在运行扩展名为ded
Stack
集合,但我不确定如何添加此事件。如果您已经有了自己的
Stack
类,则定义一个事件并在
Pop
方法中调用该事件。非常感谢您的快速回答,以确保我做得正确。我有一个简单继承
IEnumerable
的类,因此我可以枚举它,类本身在内部有一个
私有只读堆栈
集合,并且类还有所有
堆栈
函数,这些函数看起来都像这样
public T Peek(){return\u Stack.Peek();}
+在
Pop()中触发了一个事件
正确吗?可能是重复的