我读过一段C#中Stack实现的代码。
该代码正在工作,但我不明白在同一个类中拥有一个类的对象是否非法(我确信它是合法的,因为我可以编译它)。代码如下。
public class Stack{
Entry top;
public void Push(object data){
top = new Entry(top, data);
}
public object Pop(){
if(top==null) throw new InvalidOperationException();
object result = top.data;
top = top.next;
return result;
}
class Entry{
public Entry next;//?
public object data;
public Entry(Entry next, object data){
this.next = next;
this.data = data;
}
}
}
代码已编译并运行正常。
我很困惑,在 Entry 类内部,它有一个nextEntry 类字段。
此外,当 Stack 调用 Push 方法时,它会调用 Entry 构造函数,该构造函数设置为this.next,next但我不明白这是如何工作的,this.next它将指向 object next,但“下一个”对象在哪里以及如何创建。
如果有人能帮助我理解上面的代码,我将非常感激。
噜噜哒
江户川乱折腾
相关分类