2012-11-23 205 views
-1

我想做到的是访问方法关闭一个对象,它是在一个堆栈的像这样的顶级:通话功能

var stack = new Stack(); 
var obj1 = new Foo(stack); //has method called Bar, and reference to stack 
stack.Push(obj1); 
stack.Peek().Bar(); 

我想用一个堆栈而不是一个数组,因为Bar在执行结束时会自动弹出堆栈。有没有办法用堆栈来做这件事,或者我需要产生一个List?我认为Peek在没有弹出的情况下返回栈顶。

+0

你的问题不清楚。 – DarthVader

+0

我基本上是将一个对象推入堆栈,然后想要访问属于该堆栈上该对象的方法。因此,如果堆栈顶部的对象具有“打印方法”,我希望能够说stack.Peek()。Print(); – thed0ctor

+2

是吗?如果您使用Stack的通用版本,则可能会有更好的运气。 –

回答

3

请参阅msdn resource

Stack<T>支持Push(),Peek()Pop()

或者我不理解你的问题。

+0

我基本上是将一个对象推到堆栈上,然后想要访问属于该堆栈上该对象的方法。因此,如果堆栈顶部的对象具有“打印方法”,我希望能够说stack.Peek()。Print();由于peek将堆栈顶部的对象返回 – thed0ctor

+0

当然,ja,你确定,没有错。 'Peek()'返回一个对象的引用。您可以通过参考调用方法。该对象也在堆栈中被引用的事实很重要。 – SAJ14SAJ

+0

谢谢!原来,我不得不使用通用版本的堆栈 – thed0ctor