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

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

原文地址:https://www.cnblogs.com/mol1995/p/11378938.html