2012-07-05 35 views
2

除了淺層和深層複製差異的常見無聊差異,在c#中複製真實生活中的用法?

我想知道,我將使用淺拷貝的現實生活中的scenerios是什麼?

我沒有看到任何使用(我一定是錯的吧)

由於現實生活中使用的

+0

淺拷貝類似於值類型的語義。 – leppie 2012-07-05 10:56:54

回答

3

一個例子是用於提供對象的排序列表,同時保持原來的順序的記錄。創建淺拷貝允許爲用戶提供以各種方式排序的相同列表,但都鏈接回原始對象。

+0

但是,對新列表進行排序也會對原始列表進行排序,它的元素相同 – 2012-07-05 12:09:05

+0

它對元素的引用進行排序。我談論的內容不是價值類型! – zeFrenchy 2012-07-05 12:16:59

+0

選擇任何ref類型(即不是結構)並嘗試類似這樣的 'List original = new List (); original.Add(new Point3D(0,1,2)); original.Add(new Point3D(3,4,5)); original.Add(new Point3D(6,7,8)); original.Add(new Point3D(9,0,1)); Point3D [] arr_original = original.ToArray(); Point3D [] arr_copy =(Point3D [])arr_original.Clone(); //淺拷貝 Array.Reverse(arr_copy); if(arr_original [0]!= arr_copy [0])Console.WriteLine(「I win!」);' – zeFrenchy 2012-07-05 12:31:51