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();
}