天天看點

C#中對象的拷貝

前面寫了一個java的對象拷貝,是以也寫個c#的。其實c#跟java語言的相似度是極高的,是以它們的對象之間的指派也是相同的,隻是不過他們對應的方法不一樣。

淺拷貝

c#中所提供的淺拷貝方法是object類提供的object MemberwiseClone()。

深拷貝

當然c#中的深拷貝也可以用java中的方法,每一個類裡面都用前拷貝。。。。

c#中也可以用序列化,序列化的方法也是将類對象輸入到記憶體中,然後将資料反序列化到新的object,然後傳回。代碼如下:

object o;
            MemoryStream ms = new MemoryStream();
            BinaryFormatter bf = new BinaryFormatter(null, new StreamingContext(StreamingContextStates.Clone));
            bf.Serialize(ms, this);
            ms.Seek(, SeekOrigin.Begin);
            o = bf.Deserialize(ms);
            return o;
           

總結

對比學習也是學習的好方法。有什麼不對的期望大家能夠指出,不勝感激。