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