嗨,我有一个关于如何列出的问题。
我正在尝试定义一个列表
List<periodrecord> pl=new List<periodrecord>(4);
然后我希望通过 for 循环将项目添加到列表中
当我这样做时:
for (i = 1; i < 100; i++)
{
try
{
periodrecord pr = new periodrecord();
/*some random lines*/
pl.Add(pr);
}
catch (Exception e)
{ break; }
}
我的问题是:在每个循环中声明的 pr 的地址将由列表存储。但是由于 pr 变量本身不再被程序使用,这些位置是否会被视为空并以某种方式被覆盖?谢谢。
考虑到答案,还是有些疑惑,我的完整代码如下:
List<periodrecord> pl=new List<periodrecord>(4);
for (i = 1; i < 100; i++)
{
try
{
periodrecord pr = new periodrecord();
record2 = sr.ReadLine();
SNorPartCode = record1.Split('&')[0];
phototype = int.Parse(record1.Split('&')[1]);
System.Globalization.CultureInfo provider = System.Globalization.CultureInfo.InvariantCulture;
time = record1.Split('&')[2];
pr.start = DateTime.Parse(time,provider);
pr.SNorPartCode = SNorPartCode;
pr.phototype = phototype;
if (record2 != null)
{
pr.end = DateTime.Parse(record2.Split('&')[2], provider);
}
else
{
pr.end = DateTime.MaxValue;
}
pl.Add(pr);
record1 = record2;
}
catch (Exception e)
{ break; }
}
当我下线时: periodrecord pr = new periodrecord();
从 for 循环中出来,行
pr.start=...
pr.end=....
更改了列表中的所有项目。