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;)
我不明白为什么是这样?求解答,谢谢了