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

 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脱钩.

posted on 2019-08-19 18:53  mol1995  阅读(117)  评论(0编辑  收藏  举报

导航