对象赋值的问题,当执行B=A,然后改变B中的一些内容后,结果A也同时进行了改变
我编写了一个类Px,并定义了两个类对象A、B,把A实例化后,B没有实例化,这时执行B=A,然后改变B中的一些内容后,结果A也同时进行了改变。怎么能操作B时与A脱离关系。
如何在类函数中实现B=A这种功能。是否可以采用重载解决。
[解决办法]
最简单的,把 Px 从 class 改为 struct
[解决办法]
= 这个符号不能重载,最好是增加个 复制 的方法,在 B=A 时调用 B=A.Clone()
[解决办法]
class px { public string str = ""; public int a = 0; public px(){} public px Copy() { px P = new px(); P.a = this.a; P.str = this.str; //所有的字段属性赋值 return P; } }A=B.Copy();这样A、B就独立了