随笔-348  评论-598  文章-0  trackbacks-0
Hashtable和ArrayList等经常需要深度拷贝,而.Net没有现成的函数可以调用,我从国外找了一个方法
        public object Clone()
        {
            BinaryFormatter Formatter 
= new BinaryFormatter(nullnew 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了!


---------------------------------------------------------
专注移动开发

Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
posted on 2008-02-12 23:52 TiGERTiAN 阅读(2541) 评论(2)  编辑  收藏 所属分类: DotNet

评论:
# re: C#深度拷贝(Deep Copy) 2008-10-18 16:42 |
google 到这,受用了,好东西  回复  更多评论
  
# re: C#深度拷贝(Deep Copy) 2008-10-18 18:27 | TiGERTiAN
@猪
呵呵,都是自己人。  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: