1:问题描述
有三个类,Department,Method和Data
a.Department里面有个Data的集合,如下:
public class Department
{
public List<Data> BakDatas = new List<Data>();
}
b.Method里面也有个Data的集合,如下:
public class Method
{
public List<Data> Datas;
}
c.Data类:
public class Data
{
public double Temperature
{
get;
set;
}
}
d.Method与Department的关系:
dept = new Department();
method = new Method();
method.Datas = dept.BakDatas;
这样建立以后,原则上给dept.BakDatas值,method.Datas count个数应该和dept.BackDatas count个数一样,可是下面测试(下面红色字体)并不是这样,不知为什么,求高手解??
附代码:
/// <summary>
/// 设置关联,检查:dept.BakDatas的变化将影响methodDP.Datas
/// </summary>
private void InitInstance()
{
dept = new Department();
method = new Method();
method.Datas = dept.BakDatas;
}
private List <Data > initBackDatas()
{
List <Data > BakDatas=new List<Data> ();
Data dt1 = new Data() { Temperature = 21 };
Data dt2 = new Data() { Temperature = 22 };
Data dt3 = new Data() { Temperature = 23 };
BakDatas.Add(dt1);
BakDatas.Add(dt2);
BakDatas.Add(dt3);
return BakDatas ;
}
/// <summary>
/// 测试错误why
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTestAdd_Click(object sender, EventArgs e)
{
InitInstance();
List<Data> BackDatas = initBackDatas();
dept.BakDatas = BackDatas.ToList();
//显示:dept:3;Method:0
string infoCheck= = "dept:"+dept.BakDatas.Count.ToString()
+ ";Method:" + method.Datas.Count.ToString ();
}
/// <summary>
/// 测试正确
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnTestClear_Click(object sender, EventArgs e)
{
InitInstance();
List<Data> BackDatas = initBackDatas();
dept.BakDatas.Clear();
dept.BakDatas.AddRange(BackDatas );
//dept:3;Method:3
string infoCheck= "dept:" + dept.BakDatas.Count.ToString()
+ ";Method:" + method.Datas.Count.ToString();
}