工作中遇到这么一个问题,现在有一个Model,我需要将该Model变为两个Model并且放入List集合当中去,这两个Model完全一样,但是其中某个字段的值不一样,经过直接赋值我们发现整个List中所有Model的那个字段值都变成一样的了,并没有修改成功,因此设计到了引用类型和值类型的问题,此处用clone方法解决。
例如:
List<Model> modelList = new List<Model>();
Model contentModel = new Model(); //contentModel.ID=0
foreach(string id in idList) // idList(1,2,3)
{
Model model = new Model();
model = contentModel ;
model.ID = id;
modelList .Add(model);
}
// modelList[0].ID = 3 modelList[1].ID = 3 modelList[2].ID = 3
这里发现id并没有赋值到每一个对应的实体当中,而是List中所有Model该字段的值都变成一样的了
解决方法:
1.在实体类中,我们实现ICloneable public class contentModel: ICloneable
2.在实体类中,加上Clone方