您的位置:首页 > 编程语言 > C#

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了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: