我想要一个真正的深拷贝.在Java中,这很容易,但是你如何在C#中做到这一点?
我有各种不同对象类型的ObservableCollections.我想编写一个方法来获取任何这些对象类型的集合,并返回一个新集合,其中每个元素都是给定集合中元素的深层副本.以下是特定类的示例
private static ObservableCollection<PropertyValueRow> DeepCopy(ObservableCollection<PropertyValueRow> list)
{
ObservableCollection<PropertyValueRow> newList = new ObservableCollection<PropertyValueRow>();
foreach (PropertyValueRow rec in list)
{
newList.Add((PropertyValueRow)rec.Clone());
}
return newList;
}
Run Code Online (Sandbox Code Playgroud)
如何为任何实现ICloneable的类使这个方法通用?
我有 2 个与 C# 中的类相同的对象。
Myclass obj1 = new Myclass();
Myclass obj2 = null;
obj2 = obj1;
obj1.Name = "abc"; //"abc" will also assign to obj2.Name.
Run Code Online (Sandbox Code Playgroud)
当我分配时obj1.Name="abc",它也会分配给obj2.Name. 我想阻止这一切。我已经尝试过 const, seal 但没有得到结果。有人能建议我如何停止对obj1on的引用obj2吗?