有个Class名字是className.
className A=new className();
A.Number1=0;
A.Number2=1;
className B=new className();
B=A;
A.Dispose();
当执行A.Dispose();的时候,B也消失了,为什么?
我想把A的一个副本赋值给B,在A消失一段时间之后直接拿B来用,当做缓存。为什么这种方式不行呀?应该怎么处理呀?
className A=new className();
A.Number1=0;
A.Number2=1;
className B=new className();
B=A;
A.Dispose();
当执行A.Dispose();的时候,B也消失了,为什么?
我想把A的一个副本赋值给B,在A消失一段时间之后直接拿B来用,当做缓存。为什么这种方式不行呀?应该怎么处理呀?
1. className A=new className();
A.Number1=0;
A.Number2=1;
className B=new className();
B.Number1 = A.Number1;
B.Number2 = A.Number2;A.Dispose();2.className实现ICloneable接口
参考
http://www.csharp411.com/c-object-clone-wars/
B=A;
也不过是让B指向A的对象,让B原本的对象没有了引用等待垃圾回收。
如果要实现复制,你可以参考5楼的实现ICloneable接口,或是写成struct