C# ArrayList的问题

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:16:08
private void BindVisitData()
{
ArrayList statList = new ArrayList();
for(int i = 0; i < 12; i++)
{
VisitStat stat = new VisitStat();
stat.Name = "aaa";
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存的是地址还是值,如果是引用,每个statList[i]那么引用的是什么。

VisitStat是一个类,程序每次执行VisitStat stat = new VisitStat();这段时都会实例化VisitStat类的一个对象,C#中对象在内存中都是存储在托管堆上的,程序中使用的是对象的引用。

statList中存的是对每个对象的引用,也就是每个对象在托管堆中的地址。 可以参考MSDN:http://msdn.microsoft.com/zh-cn/library/0b0thckt.aspx

存的是引用,引用原来的那个对象

你存到ArrayList里的是Visit对象,对象是保存的是引用,储存的是他堆里的那个引用,相当于C/c++里一样的

每次循环生成一个VisitStat的实例,然后ArrayList存储该地址

是 引用,List[i]引用的是VisitStat 的对象..!