【问题标题】:C# Detect when Pop is called on Stack structureC# 检测何时在 Stack 结构上调用 Pop
【发布时间】:2017-04-02 11:22:07
【问题描述】:

我正在寻找一种方法来检查何时在 Stack 结构上调用 Pop() 函数除非我更改引用本身,否则我几乎无法确定集合何时实际更改。关于这个有什么提示吗?同样,我只关心 Pop() 函数,我真的不想知道何时调用 Push 或任何其他可以修改集合的东西。

【问题讨论】:

标签: c# collections properties stack setter


【解决方案1】:

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

【讨论】:

  • 在您回答我只需要在 Pop 上触发此事件之前 1-2 秒添加了一个小而重要的细节,顺便说一句,我已经在使用扩展的 Stack 集合运行,但我不是确定如何添加此事件。
  • 如果您已经拥有自己的Stack 类,则定义一个事件并在Pop 方法中调用该事件。
  • 非常感谢您的快速回答,以确保我做对了。我有一个简单地继承IEnumerable<T> 的类,因此我可以枚举它,并且该类本身内部有一个private readonly Stack<T> _stack 集合,并且该类具有所有Stack<T> 函数,它们看起来都像这样public T Peek() { return _stack.Peek(); } + Pop() 中触发了一个事件,对吗?
猜你喜欢
  • 2016-10-23
  • 2011-03-16
  • 2018-07-09
  • 1970-01-01
  • 2017-01-20
  • 1970-01-01
  • 1970-01-01
  • 2014-03-12
  • 2012-08-25
相关资源
最近更新 更多