部分代码
private void BindVisitData()

ArrayList statList = new ArrayList();
for(int i = 0; i < 12; i++)
   {
VisitStat stat = new VisitStat();
stat.Name = (i + 1).ToString() + "月";
stat.Number = 0;
stat.Percent = 0;
statList.Add(stat);
   }
StatView.DataSource = statList;
StatView.DataBind();
}
public class VisitStat
{
public string Name;
public int Number;
public int Percent;
}
我很想知道statList.Add之后statList里到底是什么,是指向VisitStat的地址吗?那是不是说statList[0]到statList[11]读出的值都一样?如果statList里存的是值,那statList.Add(stat);时stat不是类的实例吗?我是初学着,对这个很迷惑,希望大家帮帮忙。

解决方案 »

  1.   

     statList 的类型还是ArrayList,而元素的类型是object,如果要使用元素,需要转换一下,如:
    VisitStat  vs = (VisitStat )statList[0];
      

  2.   

    不如用泛型集合
     System.Collections.Generic.List<VisitStat > list = new List<VisitStat >();
      

  3.   

    statList不分配空间..
    VisitStat stat = new VisitStat(); 
    这里每一个stat在new后都会分配一个空间.也就是你要分配12个..statList加入每一个stat
    statList[0]就指向了第一个实例stat的空间..
    statList[1]就指向了第二个实例stat的空间..
    ...