浅复制不能传递,重新赋值就重新浅复制

痞子三分冷 提交于 2019-11-27 21:47:25

 ADORPNT p1 = GetADPointFromName("张三");            

ADORPNT p2 = GetADPointFromName("李四");        

List<ADORPNT> pts = new List<ADORPNT> {p1,p2 };           

List<ADORPNT> ps = pts; //ps与pts是浅复制关系,二者指向同一内存地址,后面对ps的操作都会pts进行

ps.RemoveAt(0);             //映射到pts

ps.Add(FlightBLL.GetADPointFromName("王五"));//映射到pts

//如果对ps重新赋值,或ps重新浅复制到其它对象,ps指向新的内存地址,与pts的浅复制关系终止。

如 ps=new List<ADORPNT>(); 或者 ps= pky;等都切换了地址,ps与pts脱钩.

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!