object的引用 与 foreach的使用
一:object的引用是弱引用
例如:现在有一个Class Model{public string name;}
方法一:
List<Model> ModelColl=new List<Model>();
Model _model=new Model();
for(int i=0;i<5;i++)
{
_model.name=i.ToString();
ModelColl.Add(_model);
}
运行:ModelColl集合里面会保存的什么呢? 五个name="4,4,4,4,4"
方法二:
List<Model> ModelColl=new List<Model>();
for(int i=0;i<5;i++)
{
Model _model=new Model();
_model.name=i.ToString();
ModelColl.Add(_model);
}
运行:ModelColl集合里面会保存的什么呢? 五个name="0,1,2,3,4"
结论:object保存的是实体的内存地址值,当实体的值更换之后,所以指向的指针都会受到影响
二:foreach
foreach(object obj in objectColl)
{
if(true)
objectColl.Remove(obj);
}
执行:会出现错误,超出范围
初步了解,foreach是在遍历集合之前,先获取集合的对象个数,并且在执行当中不会再次获取,所以在使用的时候,还是不要再foreach里面进行添加 删除操作