miscrosoft_net
2017-09-17 05:10
采纳率: 36.4%
浏览 1.1k

关于C#压栈,压栈的类型是一个类的对象

static void Main(string[] args)
{
Stack stack = new Stack();
Class1 c=new Class1();
for (int i = 0; i < 10;i++ )
{
c.n = i;
stack.Push(c);
}
for (int i = 0; i < 10; i++)
{
Console.WriteLine(stack.Pop().n);
}
}
上面的代码输出的都是‘9’

            static void Main(string[] args)
    {
        Stack<Class1> stack = new Stack<Class1>();
        for (int i = 0; i < 10;i++ )
        {
            Class1 c = new Class1();
            c.n = i;
            stack.Push(c);
        }
        for (int i = 0; i < 10; i++)
        {
            Console.WriteLine(stack.Pop().n);
        }
    }
            这样把对象new在循环里,输出的就是正确的
            (其中Class1这个类里面就一句 public int n;)

            我不明白为什么是这样?求解答,谢谢了
  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

相关推荐 更多相似问题