Mid*_*hat 14
您需要实现IClonable接口并为clone方法提供实现.如果您想避免强制转换,请不要执行此操作.
一个简单的深度克隆方法可以是将对象序列化为内存然后反序列化.您的类中使用的所有自定义数据类型都需要使用[Serializable]属性进行序列化.对于克隆,您可以使用类似的东西
public MyClass Clone()
{
MemoryStream ms = new MemoryStream();
BinaryFormatter bf = new BinaryFormatter();
bf.Serialize(ms, this);
ms.Position = 0;
object obj = bf.Deserialize(ms);
ms.Close();
return obj as MyClass;
}
Run Code Online (Sandbox Code Playgroud)
如果您的类只有值类型,那么您可以使用复制构造函数或仅将值分配给Clone方法中的新对象.
| 归档时间: |
|
| 查看次数: |
22479 次 |
| 最近记录: |