ArcGIS物件深度複製

2021-06-19 12:38:56 字數 634 閱讀 6949

arcgis engine

開發中對於物件使用,每乙個物件都會分配一塊記憶體,在有些應用中想要做到物件的完全複製,希望重新分配一塊新的記憶體來對該物件進行操作,就要用到

iobjectcopy

介面。能夠通過

iobjectcopy

介面進行複製的必須能夠轉換成

ipersiststream

。可以有效的避免

「嘗試讀取或寫入受保護的記憶體

,這通常指示其他記憶體已損壞

」這樣的錯誤。樣例

iobjectcopy bjectcopy = newobjectcopyclass();

object tocopylayer = mainmapcontrol.get_layer(i);

object copiedlayer = objectcopy.copy(tocopylayer);

ilayer c = (new featurelayerclass()) as ilayer;

object tooverwritelayer = c;

objectcopy.overwrite(copiedlayer, ref tooverwritelayer);

overviewmapcontrol.addlayer(c, i);

物件的深度複製

深度複製就是將引用成員指向的物件也進行複製。實際的過程是建立新的引用成員指向的物件,然後複製物件包含的資料。深度複製可能會變得非常複雜,因為引用成員指向的物件可能包含另乙個引用型別成員,最簡單的例子就是乙個線性鍊錶。如果乙個物件的成員包含了對於線性鍊錶結構的乙個引用,淺度複製 只複製了對頭結點的引用...

js深度複製物件

js在處理複雜資料的時候,可能會涉及到引用型別的物件或者陣列的copy問題,下面是兩種複製物件或陣列的方法 一 利用jquery自帶的方法,呼叫簡單方便 淺層複製 只複製object根級的各個值 var newobject jquery.extend oldobject 深層複製 會複製整個 包括根...

淺度複製 深度複製

深度複製 deep copy 從乙個變數到另乙個變數按值複製物件,即產生乙個和原物件相同的並且沒有任何引用聯絡的物件。淺度複製 shallow copy 只複製物件的基本型別,而引用型別仍屬於原來的物件。可以使用systrm.object的memberwiseclone 方法來完成,這是乙個受保護的...