C#深度拷贝(Deep Copy)
2008-11-04 12:49
295 查看
Hashtable和ArrayList等经常需要深度拷贝,而.Net没有现成的函数可以调用,
public object Clone()
{
BinaryFormatter Formatter = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
MemoryStream stream = new MemoryStream();
Formatter.Serialize(stream, this);
stream.Position = 0;
object clonedObj = Formatter.Deserialize(stream);
stream.Close();
return clonedObj;
}
继承了Clonable接口之后,像这样重写Clone()方法就可以了,他利用了序列化和反序列化的原理,将序列化的流丢入内存,再从内存中反序列化回来就OK了!
public object Clone()
{
BinaryFormatter Formatter = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
MemoryStream stream = new MemoryStream();
Formatter.Serialize(stream, this);
stream.Position = 0;
object clonedObj = Formatter.Deserialize(stream);
stream.Close();
return clonedObj;
}
继承了Clonable接口之后,像这样重写Clone()方法就可以了,他利用了序列化和反序列化的原理,将序列化的流丢入内存,再从内存中反序列化回来就OK了!
相关文章推荐
- [转帖]C#深度拷贝(Deep Copy)
- C#深度拷贝(Deep Copy)
- c#中常会涉及到一些类,List的深度拷贝。
- C#中List<T>对象的深度拷贝问题
- C# 深度拷贝
- C#中List<T>对象的深度拷贝问题
- C#中List<T>对象的深度拷贝问题
- C#深度拷贝,浅拷贝
- C#中List<T>对象的深度拷贝问题
- Lua实现深度拷贝(Deep Copy)
- Lua实现深度拷贝(Deep Copy)
- C#深度拷贝(转)
- C# ArrayList深度拷贝
- C#中的浅拷贝和深度拷贝
- [每日翻译](2)c#深度拷贝对象
- C# 对象深度拷贝
- 在Unity中使用C#的深度拷贝
- c#:如何处理对对象进行深度拷贝
- C#中List泛型集合引用问题(深度拷贝)
- C# 实现Dictionary数据对象的深度拷贝