首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

LIST<t> 添加实体值被覆盖有关问题

2013-07-11 
LISTt 添加实体值被覆盖问题ListModel.CP_PATIENT_ORDER list new ListModel.CP_PATIENT_ORDER()

LIST<t> 添加实体值被覆盖问题
  List<Model.CP_PATIENT_ORDER> list = new List<Model.CP_PATIENT_ORDER>();
                                                List<int> test = new List<int>();
                                                for (int l = 0; l < dsphaselq.Tables[0].Rows.Count; l++)
                                                {
                                                    Model.CP_PATIENT_ORDER model = modelCporder;                                                 
                                                    model.PHASE_ID = dsphaselq.Tables[0].Rows[l]["PHASE_ID"].ToString();
                                                    model.ORDER_ID = GetNewObject.GetNewID(8);
                                                   
                                                    list.Add(model);//此处添加的值被覆盖


                                                    test.Add(l);    //此处不覆盖
                                                } c# .net list 泛型
[解决办法]
Model.CP_PATIENT_ORDER model = modelCporder;       
=>
Model.CP_PATIENT_ORDER model = new Model.CP_PATIENT_ORDER();            
[解决办法]
你要知道,INT是值类型,Model.CP_PATIENT_ORDER是引用类型
[解决办法]
你所添加的均是对同一对象的引用,故相同
new 

-------------
Model.CP_PATIENT_ORDER model = modelCporder;  

=>

Model.CP_PATIENT_ORDER model = new Model.CP_PATIENT_ORDER();  
[解决办法]
从哪冒出来一个modelCporder,其实你每次都是添加它
[解决办法]
1楼正解。

这就是值类型和引用类型的区别。

热点排行