ArrayList array=new ArrayList();
         UserInfo user=new UserInfo();
System.Data.OleDb.OleDbDataReader reader=DB.GetDataReader(SEL_USER); while(reader.Read())
{
  user.Address=reader["Address"].ToString();
  array.Add(user);
}
当Read()三次的时候,我的array里面的三个user都是最后一个的值????只有把UserInfo user=new UserInfo();写在While里面的时候才能的到user的集合。谢谢!!

解决方案 »

  1.   

    三个user实际上是一个实例。一个实例被赋值N次,它的值还是最后一次的值。  后面赋值把前面赋的值覆盖掉了.
      

  2.   

    建议你买本“.net框架程序设计”,里面详细介绍了“值类型”和“引用类型”user实际就是一个引用类型,你new里一次,那就保存在一个地址上。user里保存的是分配的内存空间的地址
      

  3.   

    肯定是最后一个值了你每次都把前一个user对象给覆盖了