【发布时间】:2017-04-02 11:22:07
【问题描述】:
我正在寻找一种方法来检查何时在 Stack 结构上调用 Pop() 函数除非我更改引用本身,否则我几乎无法确定集合何时实际更改。关于这个有什么提示吗?同样,我只关心 Pop() 函数,我真的不想知道何时调用 Push 或任何其他可以修改集合的东西。
【问题讨论】:
标签: c# collections properties stack setter
我正在寻找一种方法来检查何时在 Stack 结构上调用 Pop() 函数除非我更改引用本身,否则我几乎无法确定集合何时实际更改。关于这个有什么提示吗?同样,我只关心 Pop() 函数,我真的不想知道何时调用 Push 或任何其他可以修改集合的东西。
【问题讨论】:
标签: c# collections properties stack setter
您必须创建自己的集合(很可能只是包装一个Stack 引用),以便您可以创建一个事件并在给定操作时触发它(在这种情况下,任何集合都会因它的声音而改变) 被执行。除了你的逻辑之外,你可以为Stack 的每个公共成员创建一个成员,然后让它简单地将调用转发到一个私有的Stack 实例。
【讨论】:
Stack 集合运行,但我不是确定如何添加此事件。
Stack 类,则定义一个事件并在Pop 方法中调用该事件。
IEnumerable<T> 的类,因此我可以枚举它,并且该类本身内部有一个private readonly Stack<T> _stack 集合,并且该类具有所有Stack<T> 函数,它们看起来都像这样public T Peek() { return _stack.Peek(); } + Pop() 中触发了一个事件,对吗?