struct A {
public double[] Data;
public int X;
}
我如何使用operator=
或添加的A
实例到容器中时迫使深拷贝?
的问题,例如:
A a = new A();
var list = new List<A>();
list.Add(a); // does not make a deep copy of Data
A b = a; // does not make a deep copy of Data
难道我真的要实现自己的DeepClone
方法,并调用它的每一次?这将极易出错......
+1:如果可以的话,保持简单的类不变是很好的,因为它减少了使用它们时发生错误的可能性。例如,即使您实施了Deep Copy,也不能保证代码的使用者会真正使用它。特别是在结构上,可变性是相当意想不到的。 – 2010-04-24 21:57:46