我有一个定义的课程:
public class SavedScan
{
public List<List<PointData>> SScan;
public class PointData
{
public float amplitude;
}
public SavedScan()
{
SScan = new List<List<PointData>>();
}
}
然后我有一个for循环,执行:
for (int i = 0; i < 10; ++i)
{
List<SavedScan.PointData> tmp = new List<SavedScan.PointData>();
SavedScan.PointData pointData = new SavedScan.PointData();
for (int j = 0; j < 10; ++j)
{
pointData.amplitude = 5.0;
tmp.Add(pointData);
}
ss.SScan.Add(tmp);
}
有趣的是,当我将调试器运行到tmp.Add(pointData)
时,我可以看到正在读取的pointData
结构。但是,当它跳出for循环进入ss.SScan.Add(tmp)
时,pointData.amplitude
内的tmp
值将全部重置为0.
我无法弄清楚我哪里出错了,所以非常感谢任何帮助。
答案 0 :(得分:1)
在循环中创建PointData 的实例:
for (int j = 0; j < 10; ++j)
{
SavedScan.PointData pointData = new SavedScan.PointData();
pointData.amplitude = 5.0;
tmp.Add(pointData);
}