隨筆-348  評論-598  文章-0  trackbacks-0
          Hashtable和ArrayList等經常需要深度拷貝,而.Net沒有現(xiàn)成的函數可以調用,我從國外找了一個方法
                  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了!


          ---------------------------------------------------------
          專注移動開發(fā)

          Android, Windows Mobile, iPhone, J2ME, BlackBerry, Symbian
          posted on 2008-02-12 23:52 TiGERTiAN 閱讀(2564) 評論(2)  編輯  收藏 所屬分類: DotNet

          評論:
          # re: C#深度拷貝(Deep Copy) 2008-10-18 16:42 |
          google 到這,受用了,好東西  回復  更多評論
            
          # re: C#深度拷貝(Deep Copy) 2008-10-18 18:27 | TiGERTiAN
          @豬
          呵呵,都是自己人。  回復  更多評論
            
          主站蜘蛛池模板: 台东县| 南安市| 彩票| 阳信县| 长春市| 霍林郭勒市| 中西区| 黄冈市| 灵宝市| 宁海县| 揭阳市| 勐海县| 米林县| 综艺| 米脂县| 商都县| 乌拉特中旗| 突泉县| 芜湖县| 抚顺市| 农安县| 靖边县| 海南省| 安福县| 阜平县| 台南市| 图木舒克市| 蒲城县| 兴文县| 衡水市| 衡阳市| 循化| 泗水县| 塘沽区| 磐安县| 虞城县| 泸州市| 赫章县| 阳曲县| 城步| 乌什县|